iOS 后台播放音频文件
首先,在info.plist里申明需要在后台播放音频内容:
添加key UIBackgroundModes
Tips:UIBackgroundModes
audio键 同时还能让app使用AirPlay播放流媒体
除此之外还需要在工程中设置对AVAudioSession 进行设置:
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError]; if (!success) { /* handle the error condition */ } NSError *activationError = nil; success = [audioSession setActive:YES error:&activationError]; if (!success) { /* handle the error condition */ }
AVAudioSession的默认类别为AVAudioSessionCategorySoloAmbient,需要将其类别设置为AVAudioSessionCategoryPlayback才可以在屏幕锁定或者静音状态播放音频
AVAudioSession的可以设置的种类如下: AVAudioSessionCategoryAmbient: 后台播放类型,会和其它音乐混合的音频类型 AVAudioSessionCategorySoloAmbient: 后台播放类型,其它音乐会停止播放 AVAudioSessionCategoryPlayback: 播放音乐文件 AVAudioSessionCategoryRecord : 录音时使用 AVAudioSessionCategoryPlayAndRecord: 录音并需要播放时使用 AVAudioSessionCategoryAudioProcessing:编码解码时or 不播放音频 or 未录音时使用 AVAudioSessionCategoryMultiRoute: 同时可以有多种输入或输出,例如:usb和耳机同时输出,但并非所有输入输出方式均支持
输入方式仅包括:AVAudioSessionPortUSBAudio AVAudioSessionPortHeadsetMic AVAudioSessionPortBuiltInMic 输出仅包括:AVAudioSessionPortUSBAudio AVAudioSessionPortLineOut AVAudioSessionPortHeadphones AVAudioSessionPortHDMI AVAudioSessionPortBuiltInSpeaker
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。