10 秒の効果音のウェーブ ファイルがあります。私がやりたいのは、そのファイルを取得して n 回繰り返し、長い WAV ファイルをディスクに保存することです。このようにして、リピート間で少し途切れるメディア プレーヤーの自動リピートではなく、はるかに長いバックグラウンド エフェクトを作成できます。私はC#でこれをやろうとしています。
4 に答える
これは、 WAV ファイル形式を考えると、圧縮されていないオーディオであると仮定すると、かなり簡単です(ほとんどの WAV ファイルは圧縮されていないか、少なくとも、私が最後にそれらを扱ったときのものでした)。
バイナリ形式にとらわれずにこれを行うために使用できるオーディオ API があるかもしれませんが、特に複雑なことをしていないので、自分で行うのと同じくらい学習に時間がかかると思います。
少数のファイルでのみこれを行う必要がある場合は、Audacityを使用して手動で行うこともできます。
これは、 NAudio .NET オーディオ ライブラリを使用して C# で簡単に実行できます。WaveFileReader
およびWaveFileWriter
クラスを使用する必要があります。WaveStream
これを使用して、長い WAV ファイルを作成しなくても、オーディオを何度でもループさせるカスタムを作成することもできます。
.Net 2.0 以降を使用している場合は、System.Media.SoundPlayerクラスと特にそのPlayLoopingメソッドを使用して、吃音なしで目的を達成できます。これは、新しい wav ファイルを作成するよりも望ましい方法です。つまり、ファイル用のディスク容量が少なくなり、サウンドのレンダリングに必要なメモリが少なくなります。一般に、サウンドがループする場合や数秒以上の長さの場合は、オーディオの再生にこのようなバッファリングされた手法を常に使用する必要があります。