2012-06-11 5 views
4

Windows 8 메트로 스타일 앱에서 mp3 파일의 사운드를 재생하고 싶습니다. 나는 이렇게하기 위해 두 가지 방법을 시도했다.Windows 8에서 사운드를 재생할 수 없습니다

방법 1 :
이것은 https://stackoverflow.com/a/10961201/147530에 의해 제공되는 코드를 사용하고있다. 그것은 작동합니다.

방법 2 : 여기
은 그냥 MediaElement을 새롭고과 같이 그 Source 속성을 설정 :

var x = new MediaElement { Source = new Uri("ms-appx:/Assets/MyMp3File.mp3") }; 

내가 x.Play() 아무것도 할

그러나 발생합니다. 예외가 발생하지 않습니다.

질문 : 방법 2를 어떻게 만들 수 있습니까?

편집 : 가 MediaFailed, MediaOpened, MediaEnded 이벤트 핸들러의 아무 것도 시도하는 방법 2

sound = new MediaElement { Source = new Uri("ms-appx:/Assets/Clook.mp3") }; 
        sound.MediaFailed += sound_MediaFailed; 
        sound.MediaOpened += sound_MediaOpened; 
        sound.MediaEnded += sound_MediaEnded; 

static void sound_MediaEnded(object sender, RoutedEventArgs e) 
     { 
      Debugger.Break(); 
     } 

     static void sound_MediaOpened(object sender, RoutedEventArgs e) 
     { 
      Debugger.Break(); 
     } 

     static void sound_MediaFailed(object sender, ExceptionRoutedEventArgs e) 
     { 
      Debugger.Break(); 
     } 
+0

시도해 보셨습니까? ms-appx : //Assets/MyMp3File.mp3 (uri 시작 부분에 이중 슬래시 추가)? – RQDQ

+0

uri 형식이 맞습니다. http://stackoverflow.com/a/9562069/147530 – morpheus

+0

MediaFailed 이벤트를 경청하는 것은 어떻습니까? 나는 그것을 사용하여 내 환경에서 오류를 볼 수있었습니다. – RQDQ

답변

6

몇 가지를 사용하여 호출되지 얻을 업데이트하고 싶었다. 다음 코드를 시도하십시오.

시각적 트리에 추가하는 것이 중요 할 수 있습니다. 중단 점을 지정하면 MediaElement에 데이터가 있는지 확인할 수 있습니다.

두 번째로 (실제로 내가 그렇게 언급했기 때문에) 필자는 도킹 스테이션이있는 Build from Samsung 장치에서 개발하고있었습니다. 장치의 오디오 잭과 스피커는 도킹 스테이션에있을 때 사용할 수 없습니다. 소리가 들리면 헤드셋을 도킹 스테이션에 직접 연결하거나 도킹 스테이션에서 분리해야합니다.

2

당신은 미디어 :

0

사용 x.autoplay = true을 재생하기 위해 전에 visualTree에서 MediaElement에 넣어해야합니다. 자동 재생 기능을 사용하면로드 될 때까지 기다릴 것입니다.

관련 문제