美文网首页
iOS如何拦截音量按键事件(前台+后台)

iOS如何拦截音量按键事件(前台+后台)

作者: 大白菜s | 来源:发表于2017-01-06 20:57 被阅读0次

前台拦截

引入AVFoundation.framework 添加音频的监听事件

二、后台拦截

1.需要开启后台模式

选中Targets-->Capabilities-->BackgroundModes-->ON,

并勾选Audio and AirPlay选项

2. - (void)applicationWillResignActive:(UIApplication *)application 代理方法中

把刚才的代码可以直接贴过来,再加上这段儿

//后台播放

[session setCategory:AVAudioSessionCategoryPlayback error:nil];

//申请后台任务id

UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;

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

if(newTaskId!=UIBackgroundTaskInvalid&&_bgTaskId!=UIBackgroundTaskInvalid)

{

[[UIApplication sharedApplication] endBackgroundTask:_bgTaskId];

}

_bgTaskId=newTaskId;

这样做,可以在按home键进入后台后 ,就可以拦截到按键事件了。

3.但是上边的方法只能10分钟之内有效,当10分钟时间到之后,无论怎么向系统申请继续后台,系统会强制挂起App,挂起所有后台操作、线程,直到用户再次点击App之后才会继续运行。

这里介绍一种方法让你的应用10分钟之后继续拦截

创建一个播放器在后台默默的播放无声音乐,如此可以实现让你的应用不论前台后台都可以长久拦截音量按键。

相关文章

网友评论

      本文标题:iOS如何拦截音量按键事件(前台+后台)

      本文链接:https://www.haomeiwen.com/subject/qdwglttx.html