您可以通过 KeyDown 和 KeyUp 事件来处理这个问题。为此,两个事件都需要知道您的媒体对象和播放状态。可能还有其他我不知道的可能性。我用这个 senerio 来播放和录音。你可以尝试只玩。
其次,即使在媒体结束或失败后,如果连续按下该键,您也需要重置。因此,您需要注册这些事件并执行与 KeyUP 事件中相同的操作。
下面的示例显示了应用程序窗口的 KeyUP 和 KeyDown 事件。
MediaPlayer player = new System.Windows.Media.MediaPlayer();
bool playing = false;
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (playing == true)
{
return;
}
/* your code follows */
try
{
player.Open(new Uri(label46.Text));
player.Volume = (double)trackBar4.Value / 100;
player.Play();
playing = true;
}
catch (FileNotFoundException)
{
MessageBox.Show("File has been moved." + "\n" + "Please relocate it now!");
}
}
private void Window_KeyUp(object sender, KeyEventArgs e)
{
if (playing == false)
{
return;
}
/* below code you need to copy to your Media Ended/Media Failed events */
player.Stop();
player.Close();
playing = false;
}