我一直在嘗試播放作爲didOutputSampleBuffer
代表中的原始數據接收的音頻。應該怎樣處理原始數據?如何在`didOutputSampleBuffer`中使用`AVCapturesession`播放音頻緩衝區
2
A
回答
1
看蘋果下面的示例代碼:AVCaptureTtoAudioUnitOSX
那裏你可以看到如何正確處理原始音頻數據並把它傳遞給AudioUnit
。
的基本原理如下:
獲取信息的
SampleBuffer
的AudioStreamBasicDescription
的格式首先得到
CMFormatDescriptionRef
與CMSampleBufferGetFormatDescription
然後拿到AudioStreamBasicDescription
與CMAudioFormatDescriptionGetStreamBasicDescription
現在您可以獲得採樣率,每通道位數,每通道通道的信息每包幀獲取
AudioBufferList
與實際音頻數據要麼使用CoreAudio的的公用或檢查這樣做
被稱爲CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
功能的正確方法這mailing list條目。第三個參數是bufferListOut
,它是您想要的AudioBufferList
,並且可以繼續使用例如。 AudioUnit或任何你需要的東西。得到實際的原始數據
的
AudioBufferList
包含AudioBuffers
每一個包含數據struct AudioBuffer { UInt32 mNumberChannels; UInt32 mDataByteSize; void *mData; };
這應該讓你去。查看來自Apple的示例代碼以獲取更多信息。
相關問題
- 1. 加載音頻緩衝區並使用音頻標籤播放
- 2. 如何向AudioQueue提供音頻緩衝區來播放音頻?
- 3. 從緩衝區播放音頻
- 4. 播放沒有緩衝區的音頻
- 5. iphone:如何緩衝和播放音頻?
- 6. 如何從AVCaptureAudioDataOutput播放音頻採樣緩衝區
- 7. 如何從iOS的遠程端播放音頻緩衝區?
- 8. 如何傳輸音頻緩衝區直接播放
- 9. 將音頻保存在緩衝區中供以後播放
- 10. 如何播放didOutputSampleBuffer中收到的音頻:?
- 11. 音頻標記中的原始緩衝區數據播放
- 12. HTML5音頻播放器刪除緩衝區後發揮
- 13. Alsa緩衝區溢出時播放音頻
- 14. 黑莓降低音頻播放器緩衝區
- 15. Mac Core AudioDeviceIOProc返回後播放的音頻輸出緩衝區?
- 16. 使用方法initWithData:error:爲了播放內存緩衝區中的音頻
- 17. 如何編輯音頻緩衝區
- 18. 在Cocoa中捕獲音頻緩衝區
- 19. 如何轉換(音頻)緩衝區爲blob重播
- 20. Qt - 如何設置音頻播放從緩衝區的開始處開始?
- 21. 在音頻播放器中添加緩衝條
- 22. 哪個API可以在ios和osx中從緩衝區播放音頻?
- 23. 如何使用AVCaptureSession中收到的原始數據播放音頻?
- 24. 使用JS流式音頻 - 來自Python的音頻緩衝區
- 25. 用ExoPlayer緩衝音頻直播流
- 26. 如何在使用avplayer播放音頻時將音頻緩存到本地
- 27. 如何解碼iOS中的AAC音頻緩衝區到PCM緩衝區?
- 28. HTML5音頻/視頻停止緩衝區
- 29. 是否需要釋放來自OpenSL ES音頻播放器的緩衝區?
- 30. 如何檢測WMA流緩衝區中的音頻靜音?