AudioUnits 和 MPMusicPlayerController
Posted
技术标签:
【中文标题】AudioUnits 和 MPMusicPlayerController【英文标题】:AudioUnits and MPMusicPlayerController 【发布时间】:2011-11-05 17:04:25 【问题描述】:我的应用程序正在利用 AudioUnit
功能为节拍器应用程序生成短促的声音。
一切正常。
现在我想在设备上播放来自 iTunes Lib 的 MP3,我使用 MPMusicPlayerController
来播放它。
在此之前没有问题,MP3 播放正常。但之后我再也不能调用我的AudioUnit
声音了。我调试了这么多,音频缓冲区的回调再也不会出现,所以我认为AUGraph
已停止,但它表明它仍在运行。
有人有想法吗? MPMusicPlayerController
是否只是停止了图表?以及如何预防?
感谢您的任何提示, 安德烈亚斯
【问题讨论】:
【参考方案1】:来自doc,“音乐播放器(MPMusicPlayerController 类的实例)始终使用系统提供的音频会话。”您的应用程序无法访问系统提供的音频会话我知道。因此,MPMusicPlayerController 音频和您的应用程序音频不可能同时播放。
要同时播放 iPod 库和节拍器中的 MP3,请执行以下操作:
-
使用自己的音频会话设置 AUGraph
使用 AVAssetReader 读取 MP3 的样本
在一个通道上向您的 AUGraph 提供样本
在另一个通道上混入节拍器音频
【讨论】:
以上是关于AudioUnits 和 MPMusicPlayerController的主要内容,如果未能解决你的问题,请参考以下文章
版本 3 AudioUnits:internalRenderBlock 中的最小 frameCount