我正在使用 MoMu 音频工具包 ( http://momu.stanford.edu/toolkit/ ) 创建一个简单的基于 iPad 的乐器/教学工具。这很棒,但就在我认为我已经完成了我的应用程序的第一个版本而没有打嗝的时候,我早期注意到的一个小异常又回来咬我了:
切换到另一个应用程序时,iPad 状态栏会短暂闪烁红色并显示“正在录制”,即使我的应用程序没有进行任何录制。更糟糕的是,在 iOS 7 中,如果操作系统认为应用程序正在尝试录音,它会请求用户允许使用麦克风。对于仅播放的应用程序,这是不可接受的行为(并且 App Store 将拒绝)。
我希望问题只是工具包的 AudioSession 初始化代码设置kAudioSessionProperty_AudioCategory
为kAudioSessionCategory_PlayAndRecord
而不是仅播放类别(kAudioSessionCategory_SoloAmbientSound
或kAudioSessionCategory_MediaPlayback
)。然而,改变这一点似乎没有帮助。
UInt32 category = kAudioSessionCategory_MediaPlayback; //kAudioSessionCategory_PlayAndRecord;
err = AudioSessionSetProperty( kAudioSessionProperty_AudioCategory, sizeof(category), &category );
有人熟悉这个问题吗?究竟是什么触发了 app-switch 上的“正在录制”状态(以及 iOS7 中的权限提示)?