核心音频(音频单元)音频会话和MPVolumeView

use*_*176 5 iphone core-audio audiounit ios mpvolumeview

我在VOIP应用程序上工作.我使用Core Audio Audio Units播放和录制音频.我需要能够操纵音量和输出设备.我正在尝试使用MPVolumeView设置音量并选择输出设备.

我的问题是:当我开始使用(开始播放和捕获RemoteIO音频单元)音频单元时,似乎MPVolumeView不再控制我的会话音量,而是控制系统范围的声音首选项.同时,硬件按钮控制音频单元播放的声音音量.此外,当我开始使用音频单元MPVolumeView开始显示按钮来更改输出设备但在此之前它没有.

似乎MPVolumeView控制某些系统范围音频会话的音量,但是当我开始使用音频单元时,会创建另一个应用程序范围(甚至音频单元宽)音频会话并用于播放声音.

那么问题是如何为我的Core Audio音频会话制作MPVolumeView控制音量?

我会很感激为什么会发生这种情况.我几乎整天都在谷歌上搜索,我发现有些人有相关问题,但没有任何提示:(.如果需要,我也可以发布更多细节.

use*_*176 2

经苹果工程师确认为bug。

更详细地说 - MPVolumeView 应该绑定到特定的音频路由(更广泛的意义上,如音频路由 + 音频类别 + 模式等),并且它适用于几个最常见的路由(例如耳机 + 播放类别 + 默认模式) )但不是您可以创建的所有自定义路由。

因此,基本上,当创建一些自定义路由时,MPVolumeView 仍然尝试控制它的最后一个(可行)或默认路由。