我发现(参见iOS 文档中的清单 7-9 ),上面关于覆盖音频路由的建议解决方案在插入和移除耳机后停止工作。
因此,如果您希望在当前音频会话(iOS 文档中的清单 7-10 )中永久更改音频路由,则可以使用相同的源设置默认音频路由
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
//Set the general audio session category
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: &setCategoryErr];
//Make the default sound route for the session be to use the speaker
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
//Activate the customized audio session
[[AVAudioSession sharedInstance] setActive: YES error: &activationErr];
当然,请确保链接 AudioToolbox 框架并使用
#import <AudioToolbox/AudioServices.h>