我有一个通过 AVAudioPlayer 以及 AudioUnit 播放器实现播放音频的应用程序。从 iOS6 开始,通过扬声器的播放音量(无论播放机制如何)已显着降低——即使在最大音量下也几乎听不见音量。如果我只是将音频会话更改为其他会话之一,例如 kAudioSessionCategory_SoloAmbientSound 或 kAudioSessionCategory_MediaPlayback,音量将恢复到 iOS6 之前的水平,但我当然无法录制音频。在运行 iOS5(或 iOS4)的同一设备上,不同音频会话类别的音量级别没有差异。
有没有其他人遇到过这个问题?我一直试图弄清楚如何在我的应用程序中将音量恢复到正常水平。我已经向 Apple 提交了一个错误,因为这似乎是一个错误,因为不同类别之间的音量水平差异很大,但我不希望很快从他们那里得到答案(或解决方案)。
配置音频会话:
UInt32 category = kAudioSessionCategory_PlayAndRecord;
error = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
if (error) {
// handle error
}
UInt32 speakerOverride = 1;
error = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(speakerOverride), &speakerOverride);
if (error) {
// handle error
}