didOutputSampleBuffer
デリゲートで生データとして受信したオーディオを再生しようとしています。生データを処理する適切な方法は何ですか?
1 に答える
次の Apple のサンプル コードを見てください: AVCaptureTtoAudioUnitOSX
生のオーディオ データを適切に処理し、AudioUnit
.
基本原則は次のとおりです。
形式に関する情報については、
SampleBuffer
を取得してくださいAudioStreamBasicDescription
まず サンプルレート、チャンネルあたりのビット数、フレームあたりのチャンネル数、パケットあたりのフレーム数に関する情報を取得
CMFormatDescriptionRef
できCMSampleBufferGetFormatDescription
ますAudioStreamBasicDescription
。CMAudioFormatDescriptionGetStreamBasicDescription
AudioBufferList
実際の音声データで を取得するCoreAudio の Public Utility を使用するか、このメーリング リストエントリで正しい方法を 確認してください。
関数が呼び出されCMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
ます。3 番目のパラメーターは、希望するbufferListOut
ものでありAudioBufferList
、たとえば AudioUnit など、必要なものを操作するために渡されます。実際の生データの取得
それぞれにデータが含まれてい
AudioBufferList
ますAudioBuffers
struct AudioBuffer { UInt32 mNumberChannels; UInt32 mDataByteSize; void *mData; };
これでうまくいくはずです。詳細については、Apple のサンプル コードを参照してください。