如何让多个按钮一次播放一个不同的声音并使用Windows Phone XNA框架有一个共同的停止按钮?当播放声音时,它应播放循环,直到有人按下停止按钮或按下另一个按钮。
我使用SoundEffect
与CreateInstance
的方式,它循环播放并且播放正常但是当点击第二个按钮时,第二个声音开始与第一个一起播放。还需要帮助创建公共停止按钮。非常感谢。
我正在为每个按钮尝试类似下面的内容。
private void button2_Click(object sender, RoutedEventArgs e)
{
var stream = TitleContainer.OpenStream("Sounds/A3.wav");
var effect = SoundEffect.FromStream(stream);
SoundEffectInstance instance = effect.CreateInstance();
instance.IsLooped = true;
instance.Play();
但是由于创建的实例不在程序范围内,因此我无法创建常用的停止按钮。
我是编程的初学者。谢谢你的理解。
答案 0 :(得分:0)
您可以向您的类和一些辅助方法添加成员变量:
public class YourClass
{
private SoundEffectInstance currentSoundEffect = null;
private void StopCurrentSoundEffect()
{
this.currentSoundEffect.Stop();
this.currentSoundEffect = null;
}
private void PlaySoundEffect(string fileName)
{
this.StopCurrentSoundEffect();
using (var stream = TitleContainer.OpenStream("Sounds/A3.wav"))
{
var soundEffect = SoundEffect.FromStream(stream);
this.currentSoundEffect = soundEffect.CreateInstance();
this.currentSoundEffect.IsLooped = true;
this.currentSoundEffect.Play();
}
}
}
现在,您的每个事件处理程序都可以使用所需的文件名调用this.PlaySoundEffect
。