ここや他の場所で多機能ボタンに関する投稿をいくつか見ましたが、それらの提案を実装するのに苦労しています.
.wav ファイルを生成して保存するシンセサイザーをコーディングしています。「ビン」に保存して「保存せずに」SoundPlayerで音を再生するボタンがあり、後で削除します。これはサウンドを再生する理想的な方法ではないことに気付きました!
クリックすると、ボタンのラベルが「再生」から「停止」に変わります。残念ながら、ボタンを「停止」として機能させることはできません。
「カウンター」を作ってみた
public static int NumOfClicks = 0;
ボタンがクリックされるたびにNumOfClicks ++を実行し、次にif(IsEven(NumOfClicks))を実行しますが、「IsEvenはこのコンテキストには存在しません」というエラーが発生します。
private void btnPlay_Click_1(object sender, EventArgs e)
{
NumOfClicks++;
btnPlay.Text = "Stop";
filePath = @"TestTone.wav";
WaveGenerator wave = new WaveGenerator();
wave.Save(filePath);
SoundPlayer player = new SoundPlayer(filePath);
player.Play();
if (IsEven(NumOfClicks))
{
btnPlay.Text = "Play";
player.Stop();
filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
File.Delete(@"TestTone.wav");
}
}
別の「停止」ボタンを作成しようとしましたが、player.Stop() コマンドが機能しません (プレーヤーは「このコンテキストには存在しません」)。
NumOfClicks でスイッチを使用しようとしましたが、同じ「このコンテキストにプレーヤーが存在しません」というエラーが発生しました。
誰かがこれを修正するか、より良い方法を持っているなら、私はそれを大いに感謝します!