不能播放完整的声音

本文关键字:声音 播放 不能 | 更新日期: 2023-09-27 18:16:43

我有这段代码:

MediaPlayer player = new System.Windows.Media.MediaPlayer();
bool playing = false;
private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.D1)
    {
        if (label5.Text == "Waiting 01.wav")
        {
            MessageBox.Show("No wav loaded");
            return;
        }
        pictureBox6.Image = Form1.Properties.Resources.white_square_button;
        try
        {
            player.Open(new Uri(label37.Text));
            player.Volume = (double)trackBar4.Value / 100;
            playing = true;
            player.Play();
        }
        catch (FileNotFoundException)
        {
            MessageBox.Show("File has been moved." + "'n" + "Please relocate it now!");
        }
    }
}
private void Window_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.D1)
    {
        pictureBox6.Image = Form1.Properties.Resources.black_square_button;
        player.Stop();
        player.Close();
        playing = false;
    }
}

问题是。wav文件不能完整播放,只是其中的一小部分。

当D1键被按下直到释放时,它应该播放完整。

我做错了什么?

不能播放完整的声音

KeyDown事件正在重复。一种解决方案是,如果是重复键,则直接返回。

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if(e.IsRepeat) return;
    // ...