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

 




 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。