应用的audio无法通过扬声器工作

我的应用程序中有一个奇怪的错误。 我使用AVAudioPlayer播放声音(多个实例),通过耳机完美播放声音,但使用没有耳机的应用程序不会产生扬声器的声音。 所有的audio剪辑都是AAC编码的。

我已经尝试通过Objective-C API([AVAudioSession sharedInstance])和C API设置AVAudioSession属性,但没有一个选项似乎工作。

iPhone上的问题 – 当声音非常低时 – 似乎是从电话耳机(而不是耳机插孔)而不是底部扬声器 – 更改为默认发言者

//http://stackoverflow.com/questions/3104562/avaudiorecorder-avaudioplayer-sound-output-on-internal-speaker-how-to-chang UInt32 doChangeDefaultRoute = 1; AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute ); 

接受的答案(在ios7中)并不适用于我,下面的代码工作。 (我没有足够的评论意见,发表这个单独的答案)

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil]; 

对于那些使用Swift Syntax

下面为我​​工作。

 do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker) } catch { print("can't default to speaker ") }