簡體   English   中英

如何使用MediaPlayer C#停止聲音

[英]How to stop sounds with MediaPlayer c#

我具有此功能,並且必須使用MediaPlayer,因為我必須一起播放更多聲音。 該代碼有效,但是聲音不會在鍵盤上停止(我嘗試了一些代碼,但是沒有起作用)。 我該如何停止功能? 謝謝!

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM