我自己在 iOS 7 的 iPad 上确实遇到过这个问题。
录制时,AVAudioSessionModeMeasurement 会改变 iOS 7 上的播放音量。
苹果的文档指出:
如果您的应用程序正在执行音频输入或输出的测量,请指定此模式。
...如果在具有多个内置麦克风的设备上录音,则使用主麦克风。
在有两个扬声器和两个麦克风的 iPhone 上,这种方式有点有意义。当从手机底部的麦克风录音时,它会从耳机扬声器中播放音频,以防止干扰。在免提模式下使用时,它使用大声的底部扬声器和听筒中的麦克风。
在 iOS 7 的 iPad 上,它似乎通过单方面降低播放音量来复制这种行为。
直接回答你的问题:是的,我相信这是一个错误,或者至少是一个非常未记录的功能。
完成录音和测量后,您可以使用以下命令重置静音音频:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&err];
if(err) NSLog(@"AudioSession reset category error at %s:%d", __FILE__, __LINE__);
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&err];
if(err) NSLog(@"AudioSession reset mode error at %s:%d", __FILE__, __LINE__);
尽管这不一定有帮助,但我确认的发现同样表明不使用 AVAudioSessionModeMeasurement 可以解决问题。