用AVAudioPlayer播放声音,结果声音是从听筒里出来,而不是扬声器,插了耳机就从耳机出。
ok,解决办法如下:
添加AudioToolbox这个Framework,然后添加如下代码:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
注意:这里由于我的代码里已经写了:
AVAudioSession * audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error: &error];
所以,我并没有写前两行代码,结果也可以运行。别问为什么,我也不知道我为什么我不写那两行,just follow my fcking heart bitch。。。(请陈老师讲讲。。)
运行!成功从扬声器发出声音!而且成功过头了!插了耳机扬声器也发生!怎么办?改成如下:
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,sizeof (audioRouteOverride),&audioRouteOverride);