如何使用 MediaPlayer c# 停止声音
How to stop sounds with MediaPlayer c#
我有这个功能,我必须使用MediaPlayer,因为我必须同时播放更多的声音。此代码有效,但声音不会在按键时停止(我尝试了一些代码但没有奏效)。我怎样才能执行 stopSound 功能?
谢谢!
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<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);
}
}
我有这个功能,我必须使用MediaPlayer,因为我必须同时播放更多的声音。此代码有效,但声音不会在按键时停止(我尝试了一些代码但没有奏效)。我怎样才能执行 stopSound 功能? 谢谢!
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<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);
}
}