一次播放一个声音

我建立一个Windows Phone 8 / 8.1应用程序,其中包括播放声音,我做的方式是一旦我按下按钮,它启动事件并运行此代码:

StreamResourceInfo info = Application.GetResourceStream(new Uri("Assets/Sound/DO_converted.wav", UriKind.Relative));
SoundEffect sound = SoundEffect.FromStream(info.Stream);
SoundEffectInstance instance = sound.CreateInstance();
instance.Play();

但是,如果我按下更多,然后一个按钮,我有更多的同时播放一个声音。 无论如何,要阻止这种情况发生,一次播放一个声音?

问候,何塞科雷亚


计算音效持续时间。 使用一个队列将它们排队并在当前持续时间之后有一个循环播放下一个循环。

SoundEffect具有以下属性:

public TimeSpan Duration { get; }

所以,我也在Windows开发论坛上发布了这个问题,这是我的问题的最佳解决方案:

MSDN论坛

      SoundEffectInstance instance;
private void Button1_Click(object sender, RoutedEventArgs e)
    {
                StreamResourceInfo info = Application.GetResourceStream(new Uri("Assets/Sound/test1.wav", UriKind.Relative));
                SoundEffect sound = SoundEffect.FromStream(info.Stream);
                if (instance != null)
                    instance.Stop();
                instance = sound.CreateInstance();
                instance.Play();
     }

    private void Button2_Click(object sender, RoutedEventArgs e)
    {
                StreamResourceInfo info = Application.GetResourceStream(new Uri("Assets/Sound/test2.wav", UriKind.Relative));
                SoundEffect sound = SoundEffect.FromStream(info.Stream);
                if (instance != null)
                    instance.Stop();
                instance = sound.CreateInstance();
                instance.Play();
    }
链接地址: http://www.djcxy.com/p/25995.html

上一篇: Playing sounds one at a time

下一篇: sound not playing at the right moment