再生ボタンと停止ボタンがあり、それらを 2 つの機能で動作する 1 つのボタンに結合したいと考えています。ただし、WhilePlaying() または AfterPlay() イベントは見つかりませんでした。いくつかグーグルで調べたところ、スレッドを使用すると必要なイベントを制御できることがわかりました。
これが私が欲しいものです。ユーザーが再生ボタンをクリックすると、再生アイコンが停止アイコンに変わり、ユーザーはすぐに再生を停止できます。または、サウンドの再生が終了すると、停止アイコンが再生アイコンに変わります。
私のプログラムで使用したコードは次のとおりです。
private void btPlayFile_Click(object sender, EventArgs e)
{
try
{
wavPlayer = new SoundPlayer();
string promptPath = System.Configuration.ConfigurationSettings.AppSettings["PromptStorage"];
wavPlayer.SoundLocation = promptPath + tePromptFile.Text;
wavPlayer.LoadCompleted += new AsyncCompletedEventHandler(wavPlayer_LoadCompleted);
wavPlayer.LoadAsync();
}
catch (Exception ex)
{
XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
}
}
void wavPlayer_LoadCompleted(object sender, AsyncCompletedEventArgs e)
{
try
{
((System.Media.SoundPlayer)sender).Play();
}
catch (Exception ex)
{
XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
}
}
private void btStopFile_Click(object sender, EventArgs e)
{
try
{
wavPlayer.Stop();
}
catch (Exception ex)
{
XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
}
}