2011-01-09 22 views
2

Hey fellows、 リアルタイムの音声変更のためのアプリケーションを構築しようとしています。 最初のステップでは、指定したファイルに音声データを記録し、録音後に再生することができました。 これで、ループで録音した直後にオーディオバッファを再生するコードを変更しようとしました。 私の質問は、録音Audioqueueから直接Audiodataを読み込むことができ、ファイルからは(ドキュメントに示されているように)どのように読み込むことができないかです。 アイアンはアイディアに感謝し、必要に応じてコード部分を表示することができます。 ありがとうございます。 ルーカス(ドイツ)リアルタイムAudioQueueレコード再生

+0

どのプラットフォーム/言語を使用する予定ですか? (あなたの質問から伝えるのは難しいです) –

+0

このプログラムは、IPhoneで動作することを意図しています。使用される言語はObjective-Cです。これまでのところ、ほとんどのコードはAudioQueue Reference Guideから取得されています。 – Lukas

+0

私はあなたの質問にもっと意味のあるタグを付け加えました。あなたはうまくいけば、今、より多くの回答を得ることができます。 –

答えて

1

SpeakHereの例をご覧ください。

OSStatus result = AudioFileReadPackets(THIS->GetAudioFileID(), false, &numBytes,  inCompleteAQBuffer->mPacketDescriptions, THIS->GetCurrentPacket(), &nPackets, 
             inCompleteAQBuffer->mAudioData); 

だから、AudioFileReadPacketsを呼び出すのではなく、あなただけの記録されたデータバッファをコピーするためのmemcpyを使用することができます。この行は、音声データをソース。あるいは、オーディオデータバッファへのポインタを再生AudioQueueに供給します。再生が続行されると、mCurrentPacketポインタをバッファに進めます。

記録するには、非常に似たようなことをします。ファイルに書き出すのではなく、メモリ内のバッファに書き出します。まず、mallocでそれを割り当てる必要があります。その後、受信したAudioQueueが記録されたデータをキャプチャしたら、そのデータをバッファにコピーします。より多くのデータがコピーされると、記録ヘッド、つまりmCurrentPacketを新しい位置に進めます。

関連する問題