オーディオをCaptureBufferに録音しましたが、wavファイルに保存する方法がわかりません。私はこれを試しましたが(http://www.tek-tips.com/faqs.cfm?fid=4782)、動作しませんでした。または正しく使用しませんでした。誰かがこれを解決する方法を知っていますか?サンプルコードは非常に高く評価されます。DirectSound CaptureBufferの内容をC#のWAVファイルに書き込む
2
A
答えて
4
WAVファイルは、2つの主要な「チャンク」からなるRIFFファイルです。最初のものはフォーマットチャンクで、オーディオのフォーマットを記述します。これは、どのサンプルレート(たとえば44.1kHz)、どのビット深度(たとえば16ビット)、いくつのチャンネル(モノラルまたはステレオ)で録音されますか。 WAVは圧縮フォーマットもサポートしていますが、圧縮されたオーディオを録音する可能性は低いので、レコードバッファにはPCMオーディオが含まれます。
次に、データチャンクがあります。これはWAVファイルの一部で、キャプチャバッファに実際のオーディオデータが含まれています。これは、形式チャンクで記述された形式でなければなりません。
NAudioプロジェクトの一部として、私はWaveFileWriterクラスを作成して、WAVファイルの作成を簡単にしました。キャプチャされたオーディオのフォーマットを記述するWaveFormatを渡します。 。コードはサンプルデータの8ビットモノラル形式に非常に依存していることを
WaveFormat format = new WaveFormat(16000, 16, 1); // for mono 16 bit audio captured at 16kHz
using (var writer = new WaveFileWriter("out.wav", format)
{
writer.WriteData(captureBuffer, 0, captureBuffer.Length);
}
関連する問題
- 1. jListにファイル内容を書き込む
- 2. C++ファイルの内容をプログラムに書き込む
- 3. リストの内容を1つのファイルに書き込むR
- 4. CFのWriteDumpで変数の内容をファイルに書き込む?
- 5. Excelシートに内容を書き込む
- 6. Python CSVファイルに内容を書き込むファイル
- 7. System.Collections.Specialized.StringCollectionの内容をファイルに書き込む方法は?
- 8. PDFファイルの内容をjava.io.Writerに書き込む
- 9. URLからローカルファイルにファイルの内容を書き込むPHP
- 10. railsデータベースの内容を外部ファイルに書き込む方法
- 11. Python、関数の内容を.txtファイルに書き込む
- 12. ファイルの内容をjspに書き込む
- 13. char配列の内容を.memファイルに書き込む
- 14. EditTextの内容に基づいてファイルに書き込む
- 15. ストリーミングノードjsの間にwavファイルに書き込む
- 16. Djangoカスタムファイルストレージ - ファイルに内容を書き込む
- 17. ファイルの内容を読み込んでC#WPFの別のファイルに書き込む方法
- 18. getを使用してファイルの内容を別のファイルに書き込む
- 19. Javascript/Nodeでblobの.wavファイルを書き込む方法
- 20. Python:numpyフロート配列にwavファイルを書き込む
- 21. AudioBufferからNode.jsにwavファイルを書き込む
- 22. ファイルの内容を削除して空のファイルに書き込む
- 23. Cのファイルに書き込む
- 24. C++:マルチスレッドプログラムのファイルに書き込む
- 25. バンドル内のファイルに書き込む?
- 26. Scala:foreachRDD内のファイルに書き込む
- 27. ファイルに書き込むときに上書きされる既存のファイルの内容を避ける
- 28. dictのリストの内容をPythonのファイルに書き込む方法
- 29. RandomAccessFile.writeに書き込む内容を書かない
- 30. リストの内容を単一のcsv列に書き込む
:次に、あなたは、単に
に生キャプチャしたデータを書き込むことができますここでは、WaveFileWriterを使用する方法について、いくつかの簡単なコード例を示します。どのような種類のサンプルレート/ビットフォーマットを使ってデータを記録していますか? – JacobJ
私はそのリンクからStartRecord()関数を使用しています。実際に私は以前は音で働いたことがないので、私はここで少し混乱しています。 –
私は、そのリンクのコードを新しいライブラリにコピーしました。私のプログラムからこのライブラリへの参照を追加しました。それから、クラス "SoundRec"のオブジェクトを宣言し、それを使用しようとしました。しかし、何とか私はそれを実行するたびに、プログラムはちょうどフリーズします。 –