使用AVPlayer的MTAudioProcessingTap和远程URL进行AVFoundation音频处理

jba*_*100 6 avfoundation audio-processing ios avplayer ios6

关于AVAudioMix和MTAudioProcessingTap的文档很少,它们允许将处理应用于AVFoundation(在iOS上)的媒体资产的音轨(PCM访问).这文章 和简单提一下在WWDC 2012届是我所发现的.

我在这里描述的设置适用于本地媒体文件,但它似乎不适用于远程文件(即HLS流式URL).这是预期的唯一迹象是本技术问答结尾处的注释:

AVAudioMix仅支持基于文件的资产.

有人知道更多吗?当资产不是基于文件时,真的没有办法访问音频PCM数据吗?任何人都可以找到与MTAudioProcessingTap相关的实际Apple文档吗?

Rya*_*ath 8

我注意到很多人在互联网上询问这个问题,普遍的共识似乎是这是不可能的。

原来是这样 - 我正在为最近的一个个人项目研究这个问题,并确定确实可以使 MTAudioProcessingTap 与远程流一起工作。诀窍是 KVO 观察 AVPlayerItem 的状态;当它准备好播放时,您可以安全地检索底层 AVAssetTrack 并在其上设置 AudioMix。

我在这里做了一些(主要是工作)代码的基本写作:http : //venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/

如果您已经设法解决了这个问题,那么您将获得更多权力,但我想我会回答这个问题,因为它在 Google 中很快就会出现在这些东西上。

  • 至少在 iOS 10 中不起作用。`[asset trackingWithMediaType:AVMediaTypeAudio][0];` 即使在 avplayer 准备好播放之后,tracks 数组也是 nil (3认同)