ユーザーが選択できる複数のサウンド ファイル オプションを含むダイアログとしてポップアップするアラームの設定に取り組んでいます。私が抱えている問題は、ボタンで閉じることができるローカル レベルでサウンド プレーヤーを作成することです。私が抱えている問題は、SoundPlayer がボタン クリック イベント内に存在しないため、フォームを閉じたときにサウンドがループし続けることです。
ここに私が持っているものがあります:
void callsound()
{
if (SoundToggle == 0) // if sound enabled
{
if ((SoundFile == 0) && (File.Exists(@"attention.wav")))
{
System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"attention.wav");
alarm.PlayLooping();
}
if ((SoundFile == 1) && (File.Exists(@"aahh.wav")))
{
System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"aahh.wav");
alarm.PlayLooping();
}
}
private void button1_Click(object sender, EventArgs e)
{
//alarm.Stop(); Only works if SoundPlayer declared at class level
this.Close();
}
自分がいる場所で SoundPlayer インスタンスを宣言することで、やりたいことを実行できる方法はありますか? または、クラス レベルで宣言し、ユーザー設定に基づいてサウンド ファイルを変更する方法はありますか?