0

aurioTouch2のサンプルコード を調査しています。

マイクからの音声を録音し、これらのデータを.caffまたは.wavファイルに書き込むようにsmthを変更したいと思います。後で、このオーディオをAVAudioPlayerで再生できるようになります。

私の考えは、applicationDidFinishLaunchingでAVAudioRecorderを使用することですが、それが最善の解決策ではないか、この方法では不可能な場合もあります(AVAudioRecorderを使用しようとはしていません。おそらく、最善の考えではないと思います)。バイトデータを書き込もうとしました

void FFTBufferManager::GrabAudioData(AudioBufferList *inBL)
{
     memcpy(mAudioBuffer+mAudioBufferCurrentIndex, inBL->mBuffers[0].mData, bytesToCopy);
     // after this I copy to my own buffer and collect all the data during 30 seconds
}

ご覧のとおり、私は自分のバッファーにコピーして、30秒間にすべてのデータを収集します。.caffファイルにデータを書き込むより。それはうまくいきません。

アップデート:

または、オーディオのバイナリデータ(.wafまたは.caffオーディオにエンコードされていない)を再生する方法が存在する可能性がありますか?

4

2 に答える 2

1

これを行うには、いくつかの方法があります。1 つの方法は、ExtAudioFileWriteAsyncを使用することです。

Apple は、これを行う方法を示すサンプル プロジェクトを提供しています。それはRecordAudioToFileです。

他のいくつかの投稿もご覧ください。

于 2012-07-17T09:38:41.300 に答える
0

正しく理解できたかどうかはわかりませんが、バッファをディスクに書き込むことはできません。CAF ファイルと WAV ファイルには、独自のヘッダーとオーディオ データのエンコードが必要です。AVRecorderクラスがこれを行います。このトピックに関する質問はたくさんあります。たとえば、この質問を参照してください。

于 2012-07-17T08:23:57.577 に答える