AVPlayerItemVideoOutput是AVFoundation中AVPlayerItemOutput的子类,我可以获取像素缓冲区格式的可视数据并执行一些处理。 (通过copyPixelBufferForItemTime:)
但是,没有相应的AVPlayerItemAudioOutput存在。如何处理音频数据?
我是否必须使用AVAssetReader类才能获得此功能?
答案 0 :(得分:1)
这是一个很好的问题。 -[AVPlayerItem addOutput:]
提及音频,但在AVPlayerItemOutput.h
中找不到任何内容(除非你想要通过AVPlayerItemLegibleOutput
课程获取音频 - 我只是半开玩笑,作为一个出售CMSampleBuffers
的班级,我认为假设的AVPlayerItemAudioOutput
看起来很像这样。)
所以我不知道AVPlayerItemAudioOutput
的位置,但是您可以使用AVAssetReader
来获取音频数据。
但是,如果您已经使用AVPlayer
,那么您最轻松的路径就是使用MTAudioProcessingTap
来扮演假设AVPlayerItemAudioOutput
的角色。
您可以点按inputParameters
AVPlayer
currentItem
audioMix
的{{1}}来接收(甚至修改)所选音轨的音频。
阅读some example code可能比解析我刚写的内容更容易。