文档章节

在后台提高优先级

w
 win_pass
发布于 2015/08/26 09:01
字数 344
阅读 9
收藏 0

一、开启后台播放功能

二、导入框架AVFoundation.framework

#import <AVFoundation/AVFoundation.h>

三、添加头文件和强引用

@property(nonatomic,strong) AVAudioPlayer *player;

四、开启后台任务,在进入后台(失去焦点)时候播放音乐

//程序进入后台的时候调用
- (void)applicationDidEnterBackground:(UIApplication *)application {
    //开启一个后台任务,时间不确定,优先级比较低
   UIBackgroundTaskIdentifier ID= [application beginBackgroundTaskWithExpirationHandler:^{
        //当后台任务结束的时候调用
        //把后台任务关闭
        [application endBackgroundTask:ID];
   }];
    
    //如何条后台任务的优先级,欺骗苹果,后台播放器程序
    
    //但是苹果会检测你的程序当时有没有播放音乐
    
    //微博:在程序即将支取焦点的时候播放静音音乐
}

 

//失去焦点
- (void)applicationWillResignActive:(UIApplication *)application {
    NSURL *url=[[NSBundle mainBundle]URLForResource:@"silence.mp3" withExtension:nil];
    
    AVAudioPlayer *player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
    [player prepareToPlay];
    //无限循环
    player.numberOfLoops=-1;
    [player play];
    
    _player=player;
}

五、真机运行需要设置后台播放模式

    /*
     //混合播放,会把后台播放的阴雨混合起来播放
     AVF_EXPORT NSString *const AVAudioSessionCategoryAmbient;
     
     //进入后台,会先把之前的后台音乐停止,再播放自己
    AVF_EXPORT NSString *const AVAudioSessionCategorySoloAmbient;
    
     //进入后台的时候播放音乐
    AVF_EXPORT NSString *const AVAudioSessionCategoryPlayback;
     
     */
    
    
    //在真机上后台播放,设置音频会话
    AVAudioSession *session=[AVAudioSession sharedInstance];
    
    //设置会话类型(后台播放)
    [session setCategory:AVAudioSessionCategoryPlayback error:nil];
    [session setCategory:AVAudioSessionCategoryAmbient error:nil];
    
    //激活
    [session setActive:YES error:nil];

 

© 著作权归作者所有

w
粉丝 0
博文 121
码字总数 19932
作品 0
广州
私信 提问
Java中的线程(一)

一、线程与进程 谈到线程,那就不得不提进程,很久之前其实并没有线程,只有进程,当一个程序需要运行的时候,必然需要使用系统资源和CPU, 因此进程就担任了对一个应用程序进行资源分配以及...

J星星点灯
2017/09/09
0
0
Android Service 生命周期

原文链接: 创建服务类 所谓的服务,在Android里被称做 Service,只要继承 android.app.Service 这个抽象类,并且实现其中几个方法就可以了。 里边必须实现的一个方法是 onBind(Intent inte...

boonya
2014/11/29
51
0
Android的进程与线程

Android的进程与线程: 一.Android中的进程 默认情况下, 同一个application中的所有component运行在同一个linux进程下. 启动一个component A时, 如果已存在处于运行状态中的component B, 且A...

SRain215
2016/03/16
44
0
KeyMob--移动广告聚合平台界的黑马

通过KeyMob SDK,开发者可以同时一次性嵌入国内外所有主流的广告平台广告,通过KeyMob后台云端服务器,可随时切换任一家广告平台的广告。还可以设置每个广告平台广告的比例与优先级。 应用交...

bbk122
2016/04/08
21
0
第七单元进程相关命令及优先级的处理

1.进程定义 进程就是cpu未完成的工作 2.ps命令 ps a ##关于当前环境的所有进程 x| -A ##所有进程 f ##显示进程从属关系 e ##显示进程调用环境工具的详细信息 l ##长列表显示进程的详细信息 ...

余二五
2017/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
8
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
14
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
3.1K
24
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
47
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部