如何在CoreAudio会话中关闭“录制”?

时间:2013-09-13 19:54:08

标签: ios core-audio

我正在使用MoMu Audio Toolkit(http://momu.stanford.edu/toolkit/)创建一个简单的基于iPad的乐器/教学工具。它很棒,但就在我认为我已经完成了我的应用程序的第一个版本而没有使用它的打嗝时,我很早就注意到的一个小异常就是回来咬我:

当切换到另一个应用程序时,即使我的应用程序没有进行任何录制,iPad状态栏也会短暂闪烁红色并显示“正在录制”。更糟糕的是,在iOS 7中,如果操作系统认为该应用程序正在尝试录制,则会要求用户允许使用该麦克风。对于仅播放应用程序而言,这是不可接受的行为(App Store将拒绝)。

我希望问题只是工具包的AudioSession初始化代码将kAudioSessionProperty_AudioCategory设置为kAudioSessionCategory_PlayAndRecord而不是仅回放类别(kAudioSessionCategory_SoloAmbientSoundkAudioSessionCategory_MediaPlayback)。然而,改变它似乎没有帮助。

UInt32 category = kAudioSessionCategory_MediaPlayback; //kAudioSessionCategory_PlayAndRecord;
err = AudioSessionSetProperty( kAudioSessionProperty_AudioCategory, sizeof(category), &category ); 

有谁熟悉这个问题?究竟是什么触发了app-switch上的“录制”状态(以及iOS7中的权限提示)?

1 个答案:

答案 0 :(得分:0)

该工具包可能正在配置RemoteIO音频单元以实现全双工,而不仅仅是音频输出。如果是这样,找到音频单元端口启用,并切换一个禁用。或者查看工具包是否有切换为您执行此操作。