これは、KeyDown および KeyUp イベントを通じて処理できます。このためには、両方のイベントがメディア オブジェクトと再生ステータスを認識する必要があります。私が気づいていない他の可能性があるかもしれません。私はこのセネリオを演奏と録音に使用しました。遊ぶだけでも構いません。
次に、メディアが終了または失敗した後でもキーが連続して押された場合もリセットする必要があります。したがって、これらのイベントを登録し、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;
}