0

でマイクデバイスを追加しましたAVCaptureSession。delegateMethod を介してオーディオが必要です。このメソッドは、取得するたびにサーバーにオーディオを書き込みます。しかし、AUDIO FORMAT が正しくありません。PCM で必要なサーバー。では、PCM 形式のオーディオ データを取得するにはどうすればよいでしょうか。サーバーにデータを書き込む方法は次のとおりです。

(void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
       fromConnection:(AVCaptureConnection *)connection
{

    AudioBufferList audioBufferList;
    NSMutableData *data=[[NSMutableData alloc] init];
    CMBlockBufferRef blockBuffer;
    CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);

    for( int y=0; y<audioBufferList.mNumberBuffers; y++ )
    {
        AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
        Byte *frame = (Byte*)audioBuffer.mData;
        [data appendBytes:frame length:audioBuffer.mDataByteSize];
    }

    CFRelease(blockBuffer);
    blockBuffer=NULL;

    [outputStream write:[data bytes]maxLength:[data length]];    
}

要件に応じてデータを取得できるように、このフェーズ コードにオーディオ設定を追加する理由はありますか?

4

1 に答える 1

-1

AVCaptureAudioDataOutputに関するこのアップルデベロッパドキュメントを確認することをお勧めします。これは、 AVReaderWriterを使用した読み取りと書き込みに関するサンプルコードです。

于 2012-08-21T10:59:53.257 に答える