为什么AVFoundation中不存在AVPlayerItemAudioOutput?

时间:2015-04-03 11:40:35

标签: ios avfoundation

AVPlayerItemVideoOutput是AVFoundation中AVPlayerItemOutput的子类,我可以获取像素缓冲区格式的可视数据并执行一些处理。 (通过copyPixelBufferForItemTime:)

但是,没有相应的AVPlayerItemAudioOutput存在。如何处理音频数据?

我是否必须使用AVAssetReader类才能获得此功能?

1 个答案:

答案 0 :(得分:1)

这是一个很好的问题。 -[AVPlayerItem addOutput:]提及音频,但在AVPlayerItemOutput.h中找不到任何内容(除非你想要通过AVPlayerItemLegibleOutput课程获取音频 - 我只是半开玩笑,作为一个出售CMSampleBuffers的班级,我认为假设的AVPlayerItemAudioOutput看起来很像这样。)

所以我不知道AVPlayerItemAudioOutput的位置,但是您可以使用AVAssetReader来获取音频数据。

但是,如果您已经使用AVPlayer,那么您最轻松的路径就是使用MTAudioProcessingTap来扮演假设AVPlayerItemAudioOutput的角色。

您可以点按inputParameters AVPlayer currentItem audioMix的{​​{1}}来接收(甚至修改)所选音轨的音频。

阅读some example code可能比解析我刚写的内容更容易。