2011-08-10 5 views
4

SoundEffect.FromStream을 사용하여 사운드 재생을 시작하는 Windows Phone 7 코드가 있습니다. 한 페이지에 여러 개의 오디오 클립이 필요하므로 일반 미디어 객체 대신이 파일을 사용하고 있습니다.SoundEffect.FromStream을 통해 호출 된 사운드 재생 중지

그러나 특정 외부 이벤트를 기반으로 특정 사운드 재생을 중단하고 싶습니다. Open Stream을 통해 연주되는 사운드는 "재생하고 잊어 버리기"때문에이 사운드를 참조하고 멈추는 방법을 찾을 수 없습니다.

public void PlaySoundCircus(object sender, RoutedEventArgs e) 
    { 
     if (audioPlaying == false) 
     { 
      using (var stream = TitleContainer.OpenStream("circus.wav")) 
      { 
       var effect = SoundEffect.FromStream(stream); 
       FrameworkDispatcher.Update(); 
       effect.Play(); 
      } 
      audioPlaying = true; 
     } 
    } 

답변

11

당신은 당신의 SoundEffect에 대한 참조를 저장하는 SoundEffectInstance을 작성해야합니다. SoundEffectInstance에는 Stop 메서드를 호출 할 수 있습니다.

SoundEffectInstance seiCircus; 

using (var stream = TitleContainer.OpenStream("circus.wav")) 
{ 
    var effect = SoundEffect.FromStream(stream); 
    //create the instance 
    seiCircus = effect.CreateInstance(); 

    FrameworkDispatcher.Update(); 
    //play sound via the instance 
    seiCircus.Play(); 
} 

//some event called to stop sound 
seiCircus.Stop(); 
+1

예, 그 트릭을 했어! 고맙습니다. –

+1

+1이 도움이되었습니다. 감사! – MaxGeek

+1

고마워! –