您的位置:首页 > 移动开发 > IOS开发

ios耳机线控 关于“remoteControlReceivedWithEvent”不执行的问题

2015-03-19 11:25 323 查看
首先转载几篇技术文章,以做记录


iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

/article/4925184.html

iOS框架研究 之 UIResponder 可以接收事件的对象(一)

/article/7965028.html

ios 耳机线控
/article/9381240.html

下边开始

具体实现上边转载的3篇文章中有,可自行参考

关于remoteControlReceivedWithEvent方法不执行的问题:

1.启用远程事件接收(使用[[UIApplication
sharedApplication] beginReceivingRemoteControlEvents];
方法)。

2.对于UI控件同样要求必须是第一响应者(对于视图控制器UIViewController或者应用程序UIApplication对象监听无此要求)。

3.应用程序必须是当前音频的控制者,也就是在iOS 7中通知栏中当前音频播放程序必须是我们自己开发程序。

前两条不多说,主要讲第三条,我将上述“ios 耳机线控”这篇文章中的代码写在了

AppDelegate方法中,但是却怎么也不执行remoteControlReceivedWithEvent方法(注:这个方法只有耳机中间那个键才可以触发),最后加了一段音频播放代码,即:
NSString *string = [[NSBundle
mainBundle] pathForResource:@"test"
ofType:@"mp3"];
//把音频文件转换成url格式
NSURL *url = [NSURL
fileURLWithPath:string];
//初始化音频类
并且添加播放文件
self.avAudioPlayer = [[AVAudioPlayer
alloc] initWithContentsOfURL:url
error:nil];

//预播放
[_avAudioPlayer
prepareToPlay];
后,再按耳机的中间键时,才触发remoteControlReceivedWithEvent方法。
如果有的同学说不想用耳机控制播放音频,想控制相机拍照,我的方案是可以放一个空的音频文件,将remoteControlReceivedWithEvent方法触发后,再写入自己自定义的方法。(这里不想用耳机控制播放音频,而是实现控制其它自定义的方法,如果大家有别的方案,可以留言共享,共同学习)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐