如何用MediaPlayer c停止声音#
问题描述:
我有这个功能,我必须使用MediaPlayer,因为我必须一起播放更多声音。这段代码可以工作,但声音并不停止在关键帧上(我尝试了一些代码,但没有工作)。我怎样才能做到stopSound功能? Thank'you!如何用MediaPlayer c停止声音#
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)
{
???
}
答
如果您存储您在List<MediaPlayer>
创建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);
}
}
入住这https://msdn.microsoft.com/en-us/library/system.windows.media.mediaplayer.stop(v=vs.110).aspx – PiLHA
当然,该代码有效。但现在我不得不改变上面的代码(由于线程),所以你的代码不再工作。看看我的最后一个问题。 – Poppo