2014-09-18 1 views
2

를 사용하여 재생되지 않습니다, 나는 사용자가 NewItem.xaml 페이지에있는 음악 파일을 선택하면 미디어 파일의 WP8 내 윈도우 폰 8 프로젝트에 열린

<MediaElement x:Name="MusicMediaElement" Height="100" Width="100"        
       VerticalAlignment="Bottom" Margin="176,100,204,69"        
       Volume="1" 
       Source="{Binding CurrentCountdownItem.MusicFile}" 
       MediaFailed="beep_MediaFailed" 
       MediaOpened="beep_MediaOpened" 
       AutoPlay="False"/> 

, 내가 설정, 아래로 내 Dashboard.xaml에 MediaElement에 정의한

Uri MusicItem = new Uri("../Assets/Music/Sleep_Away.wma", UriKind.Relative); 
MyNewItem.MusicFile = MusicItem.ToString(); 

viewModel을 사용하여 MyNewItem 값을 적절히 CurrentCountdownItem에 복사합니다.

대시 보드

, OnNavigatedTo() 방법이 코드,

MusicMediaElement.Source = new Uri(CurrentCountdownItem.MusicFile, UriKind.Relative); 
MusicMediaElement.Play(); 

을하지만 음악은 재생되지 않습니다, 나는 그것이 파일을 열 수없는 경우 호출됩니다 beep_MediaOpened() 방법에서 호출하는 대신 오류 코드 3100을 얻을 파일.

음악 파일을 콘텐츠로 표시하고 Asset/Image 폴더 내의 다른 이미지 파일은이 논리에 따라 정상적으로 작동합니다. 3100 오류를 많이 검색하고 Uri를 사용하여 음악 파일에 액세스했지만 작동 결과가 나타나지 않았습니다. 바인딩에 대한 도움은 Uri의 소스 속성 MediaElement입니다.

답변

2

MusicItem Uri를 다음과 같이 변경하십시오.

Uri MusicItem = new Uri("/Assets/Music/Sleep_Away.wma", UriKind.Relative); 

당신은 OnNavigatedTo() 이벤트에서 오디오를 재생하는

편집 할 수 있습니다. OnNavigatedTobeep_MediaOpened 이벤트 처리기에 중단 점을 설정하면 MusicMediaElement.Play() 줄 실행이 끝난 후 beep_MediaOpened 이벤트가 발생하는 것을 확인할 수 있습니다. 그래서 문제는 명백합니다. 파일을 재생하려고하면 mp3 파일이 열리지 않습니다.

OnNavigatedTo 이벤트 핸들러에서 MusicMediaElement의 소스를 설정 한 다음 beep_MediaOpened 이벤트 핸들러에서 mp3를 재생할 수 있습니다. 미디어 요소가 파일을 제대로 연 다음 파일을 재생합니다.

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    MusicMediaElement.Source = new Uri(CurrentCountdownItem.MusicFile, UriKind.Relative); 
} 

private void beep_MediaOpened(object sender, RoutedEventArgs e) 
{ 
    MusicMediaElement.Play(); 
} 

이렇게하면 문제가 해결됩니다.

+0

이봐 요, 3100 오류가 해결되었지만 노래가 여전히 재생되지 않습니다. –

+0

MediaOpened 이벤트가 발생합니까? 중단 점을 설정하고 자식을주세요. –

+0

예, MediaOpened 이벤트가 트리거되고 MediaFailed가 트리거되지 않습니다. –