私はWinFormsアプリを持っています。このアプリには、アラートが表示されているときに再生されるサウンドをユーザーが選択できる環境設定セクションがあります。
ユーザーが「重大な停止」、「重大なビープ音」などの Windows に保存されたサウンドから選択できるコンボボックスを使用することは可能ですか。これらは、[コントロール パネル] >> [サウンドとアラート] セクションにあります。
サウンドをテストするための再生ボタンを使用することもできますか?
私はWinFormsアプリを持っています。このアプリには、アラートが表示されているときに再生されるサウンドをユーザーが選択できる環境設定セクションがあります。
ユーザーが「重大な停止」、「重大なビープ音」などの Windows に保存されたサウンドから選択できるコンボボックスを使用することは可能ですか。これらは、[コントロール パネル] >> [サウンドとアラート] セクションにあります。
サウンドをテストするための再生ボタンを使用することもできますか?
システム サウンドを再生するのに API は必要ありません。次のようなコードを記述します。
// Plays the sound associated with the Asterisk system event.
System.Media.SystemSounds.Asterisk.Play();
このSystemSounds
クラスには、次の事前定義されたシステム サウンドが含まれています。
他のすべてのサウンドは、レジストリから目的のサウンドを読み取り、次のようなコードで再生する必要があります。
SoundPlayer simpleSound = new SoundPlayer(@"c:\Path\To\Your\Wave\File.wav");
これを試して:
private void Form1_Load(object sender, EventArgs e)
{
var systemSounds = new[]
{
System.Media.SystemSounds.Asterisk,
System.Media.SystemSounds.Beep,
System.Media.SystemSounds.Exclamation,
System.Media.SystemSounds.Hand,
System.Media.SystemSounds.Question
};
comboBox1.DataSource = systemSounds;
comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
}
void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
((System.Media.SystemSound)comboBox1.SelectedItem).Play();
}
もちろん!探しているすべてのサウンドは、サウンドをトリガーするイベントの種類に対応するパブリック プロパティとして公開されているSystem.Media.SystemSounds
クラスを通じて利用できます。
さらに、SystemSound
クラスのオブジェクトは、そのサウンドを非同期で再生するために呼び出すことができるPlay
メソッドを提供します。
たとえば、「クリティカル ストップ」サウンドを再生するには、次のコードを記述します。
System.Media.SystemSounds.Hand.Play();