WPFでNAudioを使った複数waveファイルの連続再生

NAudioというオーディオライブラリがいろいろと便利そうなので使ってみました。

基本的なことは以下のサイトにまとめてくれています。

https://so-zou.jp/software/tech/programming/c-sharp/media/audio/naudio/

waveファイル以外にもmp3ファイル等でも同様のことができます。

waveファイルを単独で再生する場合

var sound = new AudioFileReader("sample.wav");

var waveOut = new WaveOut();
waveOut.Init(sound);
waveOut.Play();

複数のwaveファイルを連続で再生する場合

var first = new AudioFileReader("sample1.wav");
var second = new AudioFileReader("sample2.wav");
var third = new AudioFileReader("sample3.wav");

var playlist = new ConcatenatingSampleProvider(new[] { first, second, third });)

var waveOut = new WaveOut();
waveOut.Init(playlist);
waveOut.Play();

ファイル間の間隔を開ける事もできます。以下の例ですと、sample1.wavとsample2.wavの間隔を5秒開けることになります。

var first = new AudioFileReader("sample1.wav");
var second = new AudioFileReader("sample2.wav");

var playlist = first.FollowedBy(TimeSpan.FromSeconds(5), second);

var waveOut = new WaveOut();
waveOut.Init(playlist);
waveOut.Play();

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA