停止播放通过 SoundEffect.FromStream 调用的声音

Posted

技术标签:

【中文标题】停止播放通过 SoundEffect.FromStream 调用的声音【英文标题】:Stop playing sound called via SoundEffect.FromStream 【发布时间】:2011-08-10 20:41:39 【问题描述】:

我有一些 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;
        
    

【问题讨论】:

【参考方案1】:

您需要创建一个SoundEffectInstance,它将存储对您的SoundEffect 的引用。 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();

【讨论】:

以上是关于停止播放通过 SoundEffect.FromStream 调用的声音的主要内容,如果未能解决你的问题,请参考以下文章

如何停止通过 Soundpool 播放声音?

我目前无法停止通过 ajax 调用在服务网页上播放音频

css 您可以通过更改其动画播放状态属性来“暂停”和“播放”CSS动画。将其设置为“暂停”会停止播放动画

使用Youtube API通过播放另一个来停止视频

Flash as3如何通过鼠标事件停止播放子电影剪辑?

Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能