今回はC#でNAudioを取り扱い、音声ファイルを再生するまでを解説してみたいと思います。
Visual Studioで作成しております。プロジェクトは作成済みとして解説します。
前回のブログ記事は「お気に入りのコーヒーミルについて」です。
NAudioのインストール方法
まずプロジェクトにNAudioをインストールします。手順は下記の通りです。
- VisualStudioの上部から「ツール」→「NuGetパッケージマネージャー」→「ソリューションのNuGetパッケージの管理」の順で押下します
- 「参照」にある入力欄に「NAudio」を入力し検索します。表示された「NAudio」を選択し、プロジェクトにチェックが入っていることを確認し「インストール」を押下します
- 「変更のプレビュー」が表示されたら「適用」を押下します
以上でインストールは完了です。
音声ファイルの準備
再生したい音声ファイルを準備します。
今回は「AudioFile」というフォルダを作り、その中にファイルを格納しました。またファイルのプロパティから「出力ディレクトリにコピー」を「新しい場合にコピーする」に設定します。
実装
音声ファイルを再生するコードを実装します。
private readonly string audioFilePath = @"AudioFile\music.mp3";
private AudioFileReader audioFileReader;
private WaveOut waveOut;
public MainWindow()
{
InitializeComponent();
audioFileReader = new AudioFileReader(audioFilePath);
// 音量設定
audioFileReader.Volume = 0.1f;
waveOut = new WaveOut();
waveOut.Init(audioFileReader);
// 再生終了時イベント
waveOut.PlaybackStopped += WaveOutPlaybackStopped;
// 再生する
waveOut.Play();
}
private void WaveOutPlaybackStopped(object? sender, StoppedEventArgs e)
{
// ループ再生する
audioFileReader.Position = 0;
waveOut.Play();
}
上記のコードでは
- 「音量設定」で音量を設定しています
- 「再生終了イベント」で、音声ファイルの再生が終了した際の処理を登録しています。再生終了イベント処理内では、ポジションを先頭に戻し再生を行うことにより、ループ再生するようにしてあります
本コードを実装したうえで、実行すると音声ファイルが既定の出力デバイスで再生されます。
もしPCに複数の再生デバイスが接続されており、再生デバイスを変えたい場合は、「WaveOut」の「DeviceNumber」の値を変更してください。「waveOut = new WaveOut();」の次の行で「waveOut.DeviceNumber = 1;」などとすると再生デバイスが変わるはずです。
また、デバイス名などの情報が必要な場合は、
// デバイス情報を取得する
for(int index = 0; index < WaveOut.DeviceCount; index++)
{
WaveOutCapabilities capabilities = WaveOut.GetCapabilities(index);
// capabilitiesから必要な情報を抽出する}
などとすると、取得することができます。
最後に
今回はNAudioで音声ファイルを再生する方法を、NAudioのインストールから実装までにわけて解説しました。
少しでも参考になれば幸いです。



0件のコメント: