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的主要内容,如果未能解决你的问题,请参考以下文章

iOS AudioUnits 通过

版本 3 AudioUnits:internalRenderBlock 中的最小 frameCount

从命令行控制 AudioUnits?

iOS,AudioUnits 记录到本地 URL

如何从 AudioUnits C 函数调用 Objective-C 方法? (iOS)

Audio Unit 基础