Windows Forms アプリで WAV ファイルを再生する方法(ループあり・なし)
目次
概要
このチュートリアルでは、SoundPlayer を使用して WAV ファイルをループ再生 する方法と 1回のみ再生する方法 の両方を解説します。
また、「出力ディレクトリにコピー」を「常にコピーする」に設定することで、実行ファイル (.exe) と同じディレクトリに WAV ファイルを配置し、確実に動作させます。
1. プロジェクトのセットアップ
- Visual Studio で「Windows フォーム アプリ(.NET Framework)」を作成
- WAV ファイルをプロジェクトに追加
- プロジェクトフォルダを右クリックして、既存の項目からwavファイルを追加する
 
- プロジェクトフォルダを右クリックして、既存の項目から
- プロパティの設定
- ソリューションエクスプローラー (Ctrl + Alt + L) で追加したwavファイルを選択
- 「出力ディレクトリにコピー」 → 常にコピーするに設定
 
- ソリューションエクスプローラー (
2. フォームデザイン
ボタンを追加
- ツールボックス (Ctrl + Alt + X) を開く
- 以下の3つのボタンを追加
- ループ再生ボタン
- Textプロパティ → 「ループ再生」
- Nameプロパティ →- playLoopingButton
 
- 1回だけ再生ボタン
- Textプロパティ → 「1回だけ再生」
- Nameプロパティ →- playOnceButton
 
- 停止ボタン
- Textプロパティ → 「停止」
- Nameプロパティ →- stopPlayingButton
 
3. コードを記述
Form1.cs を開き、以下のコードを記述してください。
using System;
using System.IO;
using System.Media;
using System.Windows.Forms;
namespace SoundPlayerExample
{
    public partial class Form1 : Form
    {
        private SoundPlayer Player = new SoundPlayer();
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// WAVファイルをループ再生
        /// </summary>
        private void playLoopingButton_Click(object sender, EventArgs e)
        {
            try
            {
                // 実行ファイルのあるフォルダにある wavファイル を参照
                string soundFilePath = Path.Combine(Application.StartupPath, "サウンドファイル名.wav");
                if (File.Exists(soundFilePath))
                {
                    Player.SoundLocation = soundFilePath;
                    Player.PlayLooping(); // ループ再生
                }
                else
                {
                    MessageBox.Show("サウンドファイルが見つかりません", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("エラー: " + ex.Message, "再生エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// WAVファイルを1回だけ再生
        /// </summary>
        private void playOnceButton_Click(object sender, EventArgs e)
        {
            try
            {
                // 実行ファイルのあるフォルダにある chimes.wav を参照
                string soundFilePath = Path.Combine(Application.StartupPath, "サウンドファイル名.wav");
                if (File.Exists(soundFilePath))
                {
                    Player.SoundLocation = soundFilePath;
                    Player.Play(); // 1回のみ再生
                }
                else
                {
                    MessageBox.Show("サウンドファイルが見つかりません", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("エラー: " + ex.Message, "再生エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// 再生を停止
        /// </summary>
        private void stopPlayingButton_Click(object sender, EventArgs e)
        {
            Player.Stop(); // 再生停止
        }
    }
}4. イベントの設定
フォームデザイン画面 (Form1.cs [デザイン]) で、各ボタンのクリックイベントを設定します。
- 「ループ再生」ボタンをクリック
- プロパティウィンドウ (F4) の「イベント」タブ(雷マーク)を開く
- 「Click」イベントをダブルクリック → playLoopingButton_Clickのコードが自動生成される
- 「1回だけ再生」ボタンも同様に「Click」イベントをダブルクリック → playOnceButton_Clickのコードが自動生成される
- 「停止」ボタンも同様に「Click」イベントをダブルクリック → stopPlayingButton_Clickのコードが自動生成される
5. 動作確認
- F5 を押してアプリを実行
- 「ループ再生」ボタンを押す
- WAVファイルがループ再生される
 
- 「1回だけ再生」ボタンを押す
- WAVファイルが1回のみ再生される
 
- 「停止」ボタンを押す
- 再生が停止する
 
- bin\Debugフォルダを開いて- wavファイルが存在するか確認- 存在しない場合、「ビルド」→「クリーン」後に再ビルドを試す
 
6. 追加機能のアイデア
(1) ファイル選択ダイアログを追加
ユーザーがWAVファイルを自由に選択できる機能を追加できます。
private void selectFileButton_Click(object sender, EventArgs e)
{
    using (OpenFileDialog openFileDialog = new OpenFileDialog())
    {
        openFileDialog.Filter = "WAV files (*.wav)|*.wav";
        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            Player.SoundLocation = openFileDialog.FileName;
            Player.PlayLooping();
        }
    }
}- ボタンを追加して、このメソッドを割り当てる と、自由にWAVファイルを選択できるようになります。
7. まとめ
✅ WAVファイルを「ループ再生」「1回のみ再生」「停止」する方法を学んだ!
✅ 「出力ディレクトリにコピー」を「常にコピーする」に設定し、実行ファイルと一緒に管理!
✅ Application.StartupPath を使用し、確実にファイルを取得!
これで、WAVファイルを扱う基本的なサウンドアプリ が完成しました! 🎵
訪問数 131 回, 今日の訪問数 1回






ディスカッション
コメント一覧
まだ、コメントがありません