iOS-关于AVAudioSession的使用——后台播放音乐

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

1.1AVAudioSession的类别•AVAudioSessionCategoryAmbient

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

•AVAudioSessionCategorySoloAmbient

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

•AVAudioSessionCategoryPlayback

–独占音乐播放

•AVAudioSessionCategoryRecord

–录制音频

•AVAudioSessionCategoryPlayAndRecord

–播放和录制音频

•AVAudioSessionCategoryAudioPRocessing

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

图解:

类别

输入

输出

与ipOD混合

遵从静音

AVAudioSessionCategoryAmbient

No

Yes

Yes

Yes

AVAudioSessionCategorySoloAmbient

No

Yes

No

Yes

AVAudioSessionCategoryPlayback

No

Yes

No

No

AVAudioSessionCategoryRecord

Yes

No

No

No

AVAudioSessionCategoryPlayAndRecord

Yes

Yes

No

No

2.后台播放音乐2.1.设置后台任务+ (UIBackgroundTaskIdentifier)backgroundPlayerID:(UIBackgroundTaskIdentifier)backTaskId

{

// 1. 设置并激活音频会话类别

AVAudioSession *session = [AVAudioSession sharedInstance];

[session AVAudioSessionCategoryPlayback error:nil];

[session setActive:YES error:nil];

// 2. 允许应用程序接收远程控制

[[UIapplicationsharedApplication] beginReceivingRemoteControlEvents];

// 3. 设置后台任务ID

UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;

newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];

if (newTaskId != UIBackgroundTaskInvalid && backTaskId != UIBackgroundTaskInvalid) {

[[UIApplication sharedApplication] endBackgroundTask:backTaskId];

}

return newTaskId;

}

2.2.设置后台播放//后台播放音频设置

AVAudioSession *session = [AVAudioSession sharedInstance];

[session setActive:YES error:nil];

[session setCategory:AVAudioSessionCategoryPlayback error:nil];

//让app支持接受远程控制事件

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

2.3.记录后台播放代号

// 后台播放任务Id

UIBackgroundTaskIdentifier _bgTaskId;

// 设置音频会话,允许后台播放

_bgTaskId = [SoundTool backgroundPlayerID:_bgTaskId];

作者: 清澈Saup

出处: http://www.cnblogs.com/qingche/

本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航