码迷,mamicode.com
首页 > 移动开发 > 详细

使用 AVAudioSession 实现后台播放音乐

时间:2015-04-05 20:32:55      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:ios   ios后台播放音乐   avaudiosession   

1. 前言  

  • AVAudioSession是一个单例,无需实例化即可直接使用。AVAudioSession在各种音频环境中起着非常重要的作用

  • 针对不同的音频应用场景,需要设置不同的音频会话分类

1.1 ?AVAudioSession的类别  

  • AVAudioSessionCategoryAmbient

    –混音播放,例如雨声、汽车引擎等,可与其他音乐一起播放

  • AVAudioSessionCategorySoloAmbient

    –后台播放,其他音乐将被停止

  • AVAudioSessionCategoryPlayback

    –独占音乐播放

  • AVAudioSessionCategoryRecord

    –录制音频

  • AVAudioSessionCategoryPlayAndRecord

    –播放和录制音频

  • AVAudioSessionCategoryAudioProcessing

    –使用硬件解码器处理音频,该音频会话使用期间,不能播放或录音

图解:

技术分享

2. 后台播放音乐  

2.1 ?设置后台任务  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+?(UIBackgroundTaskIdentifier)backgroundPlayerID:(UIBackgroundTaskIdentifier)backTaskId
{
????//?1.?设置并激活音频会话类别
???????AVAudioSession?*session?=?[AVAudioSession?sharedInstance];
????[session?AVAudioSessionCategoryPlayback?error:nil];
????[session?setActive:YES?error:nil];
????//?2.?允许应用程序接收远程控制
????[[UIApplication?sharedApplication]?beginReceivingRemoteControlEvents];
????//?3.?设置后台任务ID
??????UIBackgroundTaskIdentifier?newTaskId?=?UIBackgroundTaskInvalid;
????newTaskId?=?[[UIApplication?sharedApplication]?beginBackgroundTaskWithExpirationHandler:nil];
????if?(newTaskId?!=?UIBackgroundTaskInvalid?&&?backTaskId?!=?UIBackgroundTaskInvalid)?{
????????[[UIApplication?sharedApplication]?endBackgroundTask:backTaskId];
????}
????return?newTaskId;
}

2.2 ?设置后台播放  

1
2
3
4
5
6
7
//后台播放音频设置?
AVAudioSession?*session?=?[AVAudioSession?sharedInstance];???
[session?setActive:YES?error:nil];???
[session?setCategory:AVAudioSessionCategoryPlayback?error:nil];??
???
//让app支持接受远程控制事件?
[[UIApplication?sharedApplication]?beginReceivingRemoteControlEvents];

2.3 ?记录后台播放代号  

1
2
3
4
5
//?后台播放任务Id
UIBackgroundTaskIdentifier??_bgTaskId;
?
//?设置音频会话,允许后台播放
_bgTaskId?=?[SoundTool?backgroundPlayerID:_bgTaskId];

使用 AVAudioSession 实现后台播放音乐

标签:ios   ios后台播放音乐   avaudiosession   

原文地址:http://blog.csdn.net/qq871531334/article/details/44890539

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!