ios - 为什么 AVFoundation 中不存在 AVPlayerItemAudioOutput?

标签 ios avfoundation

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

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

我必须使用 AVAssetReader 类来获取它吗?

最佳答案

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

所以我不知道 AVPlayerItemAudioOutput 在哪里,但是您可以使用 AVAssetReader 获取音频数据。

但是,如果您已经在使用 AVPlayer,您最轻松的方法是使用 MTAudioProcessingTap 来扮演假设的 AVPlayerItemAudioOutput 的角色.

您可以在AVPlayercurrentItemaudioMixinputParameters 中添加一个tap 来接收(甚至修改)您选择的音轨的音频。

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

关于ios - 为什么 AVFoundation 中不存在 AVPlayerItemAudioOutput?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29431522/

相关文章:

ios - 自定义 ios 相机快门

ios - 如何快速交换 NSArray 元素

ios - 在 View Controller 之间共享 NSURLsession 委托(delegate)实现

ios - Swift - 确定哪个按钮被按下了开关

ios - CVPixelBuffer 到 CIImage 总是返回 nil

swift - 如何在 Swift 中为广播直播服务实现 HLS

iOS 10.0 - 10.1 : AVPlayerLayer doesn't show video after using AVVideoCompositionCoreAnimationTool, 只有音频

iphone - 设置 NSXMLParser 来解析本地 XML 文件

ios - PrimaryViewController的UINavigationBar嵌入到UITabBarController后变色

iOS 结合视频数据和照片的捕获输出