使用 AVAudioSession 实现后台播放音乐
来源:互联网 发布:tvc广告制作 动画网络 编辑:程序博客网 时间:2024/06/13 08:48
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];
0 0
- 使用 AVAudioSession 实现后台播放音乐
- iOS- 关于AVAudioSession的使用——后台播放音乐
- iOS- 关于AVAudioSession的使用——后台播放音乐
- iOS- 关于AVAudioSession的使用——后台播放音乐
- AVAudioSession后台播放
- 使用AudioSession实现音乐后台播放功能
- IOS实现后台播放音乐
- Android实现音乐后台播放
- ionic 实现音乐后台播放
- Android使用本地Service实现后台播放音乐
- ios实现音乐播放器后台播放
- 利用service实现音乐的后台播放
- IOS音乐后台播放的实现
- iOS中实现音乐的后台播放
- Android通过Service实现音乐后台播放
- Services实现的后台音乐播放器
- 利用service实现音乐的后台播放
- 音乐锁屏、后台播放的实现
- 我的ubuntu软件列表
- python学习笔记——列表推导 list comprehension
- 在400×1的列向量中,1至40每个数顺序出现10次MATLAB代码
- hadoop操作命令行
- HDOJ-5199-Gunner 解题报告
- 使用 AVAudioSession 实现后台播放音乐
- 硬件重构与软件定义
- Android界面刷新的方法
- STL总结
- android中WebView的用法总结
- [ACM] CSU 1548 Design road (三分)
- 热爱生命
- 国内外自然语言处理(NLP)研究组
- 组队赛#1 解题总结 ZOJ 3798 Abs Problem (找规律+打表)