web-dev-qa-db-ja.com

C#、. NETでサウンドを再生する方法

C#/。NETで記述されたWindowsアプリケーションがあります。

ボタンがクリックされたときに特定のサウンドを再生するにはどうすればよいですか?

104
Khilen Maniyar

次を使用できます。

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
204
bporter

SystemSound を使用できます(例:System.Media.SystemSounds.Asterisk.Play();)。

83
kd7

Windowsフォームの場合、1つの方法はSoundPlayerを使用することです

private void Button_Click(object sender, EventArgs e)
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

MSDNページ

これはWPFでも機能しますが、MediaPlayerMSDNページ を使用するなどの他のオプションがあります

31
ChrisF

追加情報。

これは、Windows環境にシームレスに適合したいアプリケーション向けの少し高レベルの回答です。特定のサウンドの再生に関する技術的な詳細は、他の回答で提供されました。それに加えて、常に次の2つの点に注意してください。

  1. 典型的なシナリオで5つの標準システムサウンドを使用する、つまり.

    • アスタリスク-現在のイベントを強調したいときに再生します

    • Question-質問を再生します(システムメッセージボックスウィンドウがこれを再生します)

    • 感嘆符-感嘆符アイコンで再生(システムメッセージボックスウィンドウでこれを再生)

    • ビープ音(デフォルトのシステムサウンド)

    • Critical stop( "Hand")-エラーで再生(システムメッセージボックスウィンドウでこれを再生)

    クラス System.Media.SystemSounds のメソッドはそれらを再生します。

  2. Soundコントロールパネルでユーザーがカスタマイズ可能な他のサウンドを実装する

    • この方法により、ユーザーはアプリケーションからサウンドを簡単に変更または削除でき、このためのユーザーインターフェイスを記述する必要はありません。
    • 各ユーザープロファイルは、これらのサウンドを独自の方法でオーバーライドできます。
    • 方法:
10
miroxlav

コードを鳴らすと、mp3ファイルとメモリ内のwaveファイルも再生できます

player.FileName = "123.mp3";
player.Play();

from http://alvas.net/alvas.audio,samples.aspx#sample6 または

Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);

from http://alvas.net/alvas.audio,samples.aspx#sample7

8
Aleks

C#を使用してWindowsフォームでオーディオファイルを再生するには、次のような簡単な例を確認しましょう。

1.Go Visual Studio(VS-2008/2010/2012)-> [ファイル]メニュー-> [新しいプロジェクト]をクリックします。

2.新規プロジェクト-> Windowsフォームアプリケーション->名前の入力をクリックして、OKをクリックします。

新しい「Windows Forms」プロジェクトが開きます。

3.ツールボックスからWindowsフォームにボタンコントロールをドラッグアンドドロップします。

4.ボタンをダブルクリックして、デフォルトのClickイベントハンドラーを自動的に作成し、次のコードを追加します。

このコードは、[ファイルを開く]ダイアログボックスを表示し、次の手順で作成する "playSound"という名前のメソッドに結果を渡します。

 OpenFileDialog dialog = new OpenFileDialog();
 dialog.Filter = "Audio Files (.wav)|*.wav";


if(dialog.ShowDialog() == DialogResult.OK)
{
  string path = dialog.FileName;
  playSound(path);
}

5. button1_Clickイベントハンドラーの下に次のメソッドコードを追加します。

 private void playSound(string path)
 {
   System.Media.SoundPlayer player = new System.Media.SoundPlayer();
   player.SoundLocation = path;
   player.Load();
   player.Play();
 }

6.では、F5キーを押してコードを実行するだけで、アプリケーションを実行しましょう。

7.ボタンをクリックして、音声ファイルを選択します。ファイルがロードされると、サウンドが再生されます。

これが初心者にとって有用な例であることを願っています...

最初に.wavファイルをリソースに追加する必要があると思います。たとえば、Sound.wavという名前のサウンドファイルがあります。 Sound.wavファイルをリソースに追加したら、次のコードを使用できます。

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();

これはサウンドを再生する別の方法です。