[C#] mp3ファイルを再生する


もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

やりたいこと

WPF(.net Framework4.7)のアプリで、mp3のサウンドファイルを鳴らしたい。

やりかた

Windows Media Playerを使用する。
具体的には、C:\Windows\System32\wmp.dllを使用する。

手順

下記のようにする。

  • プロジェクトの参照に、C:\Windows\System32\wmp.dllを追加する。
  • 使用するcsの先頭にusing WMPLib;を追記する。
  • 下記のサンプルのように、WindowsMediaPlayerクラスを使用し音声再生を実装する。

サンプル

using System.Windows;
using WMPLib;

namespace WpfApp38
{
    public partial class MainWindow : Window
    {
        // メディアプレーヤークラスのインスタンスを作成する
        WindowsMediaPlayer _mediaPlayer = new WindowsMediaPlayer();

        public MainWindow() => InitializeComponent();

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            _mediaPlayer.URL = @"sound.wav";// mp3も使用可能
            _mediaPlayer.controls.play();
        }
    }
}

※今回試した時は、音声ファイルはプロジェクトの直下に「追加」して、「出力ディレクトリにコピー」の設定を「常にコピー」にして使用した。
そうすれば、ビルドするとexeと同じところにコピーされて、ファイル名だけ指定する形で使用できた。

他のやり方

音を鳴らす方法は、他のやり方もある様子。こちらのページがとても分かりやすい。
https://qiita.com/Oichan/items/b93e8e8ba8211b925d0a

できれば、
.NETの標準で用意されたものでやりたいので、上記記事にある「System.Media.SoundPlayer」でやりたい。いずれ試す。(mp3が使えないようだが...)

参照

第01回 プロジェクト作成と曲再生
https://www.usefullcode.net/2016/03/01_createproject.html

C#でサウンドを鳴らす
いくつかの方法が説明されている。
https://qiita.com/Oichan/items/b93e8e8ba8211b925d0a