2013-01-13 20 views
1

環境AVCaptureSession,多發性AVCaptureAudioDataOutputs

  • iphone
  • ARM7/sdk6.0
  • xcode的4.5

用例

  1. 基於該AVCam樣品
  2. 捕獲A/V成使用AVCaptureMovieFileOutput
  3. 添加額外AVCaptureAudioDataOutput攔截音頻被寫入到文件中的文件,同時記錄

操作方法

  1. 將視頻輸入添加到捕獲會話
  2. 添加音頻輸入到捕獲會話
  3. 添加文件輸出到捕獲會話
  4. 添加音頻輸出捕獲會話
  5. 配置
  6. 開始錄製

問題

看來音頻輸出是相互排斥,因此,要麼我得到的數據被寫入磁盤,或者,我得到AVCaptureAudioDataOutput捕獲委託被調用時,添加AVCaptureMovieFileOutput(順序無關緊要),不會調用AVCaptureAudioDataOutput委託。

  • 這怎麼解決?我怎麼能'AVCaptureAudioDataOutput'觸發它的委託/選擇器,同時'AVCaptureMovieFileOutput'用於寫入數據到磁盤?
  • 這可以以任何其他方式完成,而不是使用較低級別的API,例如。 AVAssetWriter等?

任何幫助將不勝感激!

回答

0

AVAssetWriter將與AVAssetWriterInputPixelBufferAdaptor一起使用,這是一個很好的例子,可以實現如何實現可以找到here
然後,在'AVCaptureAudioDataOutputSampleBufferDelegate'調用時,可以傳播原始音頻緩衝區以進行進一步處理(與將數據寫入磁盤並行)。