C# 如何使用MediaPlayer c停止声音#
我有这个功能,我必须使用MediaPlayer,因为我必须一起播放更多的声音。这段代码可以工作,但在按键时声音不会停止(我尝试了一些代码,但没有工作)。我怎样才能完成stopSound功能? 谢谢你C# 如何使用MediaPlayer c停止声音#,c#,visual-studio,audio,media-player,desktop,C#,Visual Studio,Audio,Media Player,Desktop,我有这个功能,我必须使用MediaPlayer,因为我必须一起播放更多的声音。这段代码可以工作,但在按键时声音不会停止(我尝试了一些代码,但没有工作)。我怎样才能完成stopSound功能? 谢谢你 private void Form1_KeyDown(object sender, KeyPressEventArgs e) { [...] // Other code playSound(key, name); } private void Form1_KeyUp(objec
private void Form1_KeyDown(object sender, KeyPressEventArgs e)
{
[...] // Other code
playSound(key, name);
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
[...] // Other code
stopSound(key, name);
}
private void playSound(string name)
{
[...] // Other code
string url = Application.StartupPath + "\\notes\\" + name + ".wav";
var sound = new System.Windows.Media.MediaPlayer();
sound.Open(new Uri(url));
sound.play();
}
private void stopSound(string name)
{
???
}
如果您存储了对在
列表中创建的MediaPlayer
实例的所有引用,您可以稍后使用此列表访问它们并停止它们。大概是这样的:
List<System.Windows.Media.MediaPlayer> sounds = new List<System.Windows.Media.MediaPlayer>();
private void playSound(string name)
{
string url = Application.StartupPath + "\\notes\\" + name + ".wav";
var sound = new System.Windows.Media.MediaPlayer();
sound.Open(new Uri(url));
sound.play();
sounds.Add(sound);
}
private void stopSound()
{
for (int i = sounds.Count - 1; i >= 0; i--)
{
sounds[i].Stop();
sounds.RemoveAt(i);
}
}
List sounds=newlist();
私有void播放声音(字符串名称)
{
字符串url=Application.StartupPath+“\\notes\\”+name+“.wav”;
var sound=new System.Windows.Media.MediaPlayer();
打开(新Uri(url));
声音。播放();
声音。添加(声音);
}
私人电台
{
对于(int i=sounds.Count-1;i>=0;i--)
{
听起来[i].Stop();
声音。RemoveAt(i);
}
}
检查此项当然,此项代码有效。但是现在我不得不更改上面的代码(由于线程),所以您的代码不再工作。看看我的最后一个问题。