首页 > 代码库 > iOS 后台播放音频文件

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

 




 

iOS 后台播放音频文件