问题:AVPlayer实现的音乐播放器,模拟器和给真机插上耳机的情况下有声音,但是拔了耳机就没有声音
解决方案 :加上下面这几行代码就可以
//可播放可录音,更可以后台播放,还可以在其他程序播放的情况下暂停播放
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
error:nil];
catagory的属性
1. AVAudioSessionCategoryAmbient:
以语音为主,在用户按下静音键或者在应用程序关闭的时候静音,但不会影响其他的应用播放声音,不支持后台比方
2. AVAudioSessionCategorySoloAmbient;
(solo是独奏的意思),默认是该category,与上面AVAudioSessionCategoryAmbient相同,但是因为solo这个单词的存在使他不得不独奏,所以会终止其他应用的播放,如注释所说Use this category for background sounds. Other music will stop playing. */
3. AVAudioSessionCategoryPlayback:
语音为主,如其字面表达的那样,可以在后台播放,所以不会随着静音键合屏幕关闭而静音
4. AVAudioSessionCategoryPlayAndRecord:
可播放也可录音,该category下声音默认出口是听筒,在该模式下要切换到扬声器通过下面方式
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
error:nil];
5. AVAudioSessionCategoryRecord:
单纯提供录音功能
参考: https://blog.youkuaiyun.com/li15809284891/article/details/53516868