2011-08-10 4 views
4

SoundEffect.FromStreamを使用してサウンドの再生を開始するWindows Phone 7のコードがあります。私は1つのページに複数のオーディオクリップが必要なので、通常のメディアオブジェクトの代わりにこれを使用しています。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

ありがとうございます! –

関連する問題