ウーフー!
// kAudioSessionOverrideAudioRoute_Speaker would only work once.
// kAudioSessionProperty_OverrideCategoryDefaultToSpeaker works
// until the session changes.
SET_PROPERTY( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, UInt32, (UInt32) YES );
基本的に、iPhone には 2 つの内部スピーカーがあります。通話を受信すると耳にぶつかる「レシーバー」と、はるかに大きな外部スピーカー (これら 2 つのグリルは電源スロットの両側にあり、左側のスピーカーは外部スピーカーです。右はマイクです -- 紛らわしいです: 私は以前、iPhone をタイの修理店に持って行きました。なぜなら、'右のスピーカー' が機能していなかったからです。 ... )
とにかく、私が考えることができる正当な理由はまったくありませんが、
SET_PROPERTY( kAudioSessionProperty_AudioCategory, UInt32,
kAudioSessionCategory_PlayAndRecord );
セッションはデフォルトでレシーバーを使用するため、代わりにスピーカーを使用するように指示するだけで済みます。