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
}