2

didOutputSampleBufferデリゲートで生データとして受信したオーディオを再生しようとしています。生データを処理する適切な方法は何ですか?

4

1 に答える 1

1

次の Apple のサンプル コードを見てください: AVCaptureTtoAudioUnitOSX

生のオーディオ データを適切に処理し、AudioUnit.

基本原則は次のとおりです。

  1. 形式に関する情報については、SampleBufferを取得してくださいAudioStreamBasicDescription

    まず サンプルレート、チャンネルあたりのビット数、フレームあたりのチャンネル数、パケットあたりのフレーム数に関する情報を取得CMFormatDescriptionRefできCMSampleBufferGetFormatDescription
    ますAudioStreamBasicDescriptionCMAudioFormatDescriptionGetStreamBasicDescription

  2. AudioBufferList実際の音声データで を取得する

    CoreAudio の Public Utility を使用するか、このメーリング リストエントリで正しい方法を 確認してください。
    関数が呼び出されCMSampleBufferGetAudioBufferListWithRetainedBlockBufferます。3 番目のパラメーターは、希望するbufferListOutものでありAudioBufferList、たとえば AudioUnit など、必要なものを操作するために渡されます。

  3. 実際の生データの取得

    それぞれにデータが含まれていAudioBufferListますAudioBuffers

    struct AudioBuffer {
     UInt32 mNumberChannels;
     UInt32 mDataByteSize;
     void   *mData;
    };
    

これでうまくいくはずです。詳細については、Apple のサンプル コードを参照してください。

于 2013-05-17T08:28:17.823 に答える