ios 耳机线控

当你使用iphone的时候听音乐的时候,播放器在后台运行的时候,你仍然可以通过耳机来进行操作,完成曲目切换,快进,快退等功能!
当然你的程序不一定是播放器应用,但是我们仍然可以让它具有这个功能,让用户通过耳机进行一些比较简单常用的操作,这样是不是很酷呢?
具体的怎么实现呢?废话不多说,我们直奔主题:
1,允许接受Remote事件

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

2,处理输入事件:

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl)

{

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlTogglePlayPause:

//do something

break;

case UIEventSubtypeRemoteControlPreviousTrack:

//do something

break;

case UIEventSubtypeRemoteControlNextTrack:

//do something

break;

default:

break;

}

}

}

3,在使用完毕的时候停止接受Remote事件

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];

4,附上完整的事件类型代码,供大家使用

typedef enum {

UIEventSubtypeNone = 0,

UIEventSubtypeMotionShake = 1,

UIEventSubtypeRemoteControlPlay = 100,

UIEventSubtypeRemoteControlPause = 101,

UIEventSubtypeRemoteControlStop = 102,

UIEventSubtypeRemoteControlTogglePlayPause = 103,

UIEventSubtypeRemoteControlNextTrack = 104,

UIEventSubtypeRemoteControlPreviousTrack = 105,

UIEventSubtypeRemoteControlBeginSeekingBackward = 106,

UIEventSubtypeRemoteControlEndSeekingBackward = 107,

UIEventSubtypeRemoteControlBeginSeekingForward = 108,

UIEventSubtypeRemoteControlEndSeekingForward = 109,

} UIEventSubtype;

补充,转载:

最近发现也有人在坛子里发帖求获取ios耳机线控事件,下面给大家分享一下代码,

-(BOOL)canBecomeFirstResponder{
    NSLog(@"_____%s_____",__FUNCTION__);
    return YES;
}

//received remote event
-(void)remoteControlReceivedWithEvent:(UIEvent *)event{
    NSLog(@"event tyipe:::%d   subtype:::%d",event.type,event.subtype);
    //type==2  subtype==单击暂停键:103,双击暂停键104
    if (event.type == UIEventTypeRemoteControl) {
        switch (event.subtype) {

case UIEventSubtypeRemoteControlPlay:{
                NSLog(@"play---------");
            }break;
            case UIEventSubtypeRemoteControlPause:{
                NSLog(@"Pause---------");
            }break;
            case UIEventSubtypeRemoteControlStop:{
                NSLog(@"Stop---------");
            }break;
            case UIEventSubtypeRemoteControlTogglePlayPause:{
                //单击暂停键:103
                NSLog(@"单击暂停键:103");
            }break;
            case UIEventSubtypeRemoteControlNextTrack:{
                //双击暂停键:104
                NSLog(@"双击暂停键:104");
            }break;
            case UIEventSubtypeRemoteControlPreviousTrack:{
                NSLog(@"三击暂停键:105");
            }break;
            case UIEventSubtypeRemoteControlBeginSeekingForward:{
                NSLog(@"单击,再按下不放:108");
            }break;
            case UIEventSubtypeRemoteControlEndSeekingForward:{
                NSLog(@"单击,再按下不放,松开时:109");
            }break;
            default:
                break;
        }
    }
}

时间: 2024-10-28 21:02:07

ios 耳机线控的相关文章

耳机线控

当然你的程序不一定是播放器应用,但是我们仍然可以让它具有这个功能,让用户通过耳机进行一些比较简单常用的操作,这样是不是很酷呢? 具体的怎么实现呢?废话不多说,我们直奔主题: 1,允许接受Remote事件 [self becomeFirstResponder]; 2,处理输入事件: - (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { if (receivedEvent.type == UIEventTypeRem

聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)-b

如果说一个项目出现的最重大的事故,那无疑就是开发人员使用了不可控的元素. 前言 iOS开发当中有关于视音频播放的开发不在少数,用户时常会使用到一种输出设备,那就是"耳机",这一篇博客写的就是关于耳机的一些开发相关的技术点. 检测耳机是否插入 看到上面的标题的时候一定要注意,这里说的是"检测耳机是否插入",这里只是一次性的检测,不是实时监控耳机的拔插,但是有一些时候,下面的这个方法已经足够满足我们的开发需求了. 首先,我们需要导入AVFoundation.framew

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

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 运动事件:通过加速器进行触发(例如手机晃动) 远程控制事件:通过其他远程设备触发(例如耳机控制

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

-- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事

Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)

转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后,Android系统会发出一个广播,该广播的携带者一个Action名为MEDIA_BUTTON的Intent.监听该广播便可以获取手机的耳机媒体按键的单击事件. 在Android中有个AudioManager类,该类会维护MEDIA_BUTTON广播的分发,所以要实现耳机按键监听需要向AudioManager注册一个用于接收耳机按键单击

红米1S Mokee4.4.4 本人编译版耳机线控改动调音量以及上下曲方法

改动的文件为,用Re管理器编辑: system/usr/keylayout/msm8226-tapan-snd-card_Button_Jack.kl 默认的耳机线控的上下键是切换上下曲功能,因此此文件内容为: key 226 HEADSETHOOK WAKE key 257 MEDIA_PREVIOUS WAKE key 258 MEDIA_NEXT WAKE 假设想改成上下键调节音量功能则仅仅须要改为: key 226 HEADSETHOOK WAKE key 257 VOLUME_UP W

iphone 耳机 线控

有电话呼入时: 按一次接听电话: 快速按两次将电话转到语音信箱: 通话中: 按一次挂断电话: 通话中如果有第二个电话打进来时: 按一次保留当前通话并接听第二个电话: 按住两秒钟不放忽略(拒绝接听)第二个电话: 播放音乐时: 按一次暂停播放,再按一次恢复播放: 连按两次跳到下一首: 连按三次返回上一首(或者从头开始): 连按两次且第二次按下之后不放为快进; 连按三次且第三次按下之后不放为快退: 使用"相机"应用拍照时: 耳机线控的"音量+"可作为快门使用: 在 iPh

Android线控耳机长按事件

1,在这个周的工作中,这个问题让我纠结了好久,问度娘不知道,上android开发者官网似乎进入了词海,翻了下上了个GOOGLE,还是没有很好的答案. 2,后来得到一个相关的APK,研究过后发现原来跟线控耳机长按时,出来百度语音搜索应该一个原理(有装百度手机客户端的话). 3,主要就两个ACTION就可以实现长按操作,而且类似于后台服务的效果(如果界面显示的话,直接LongPress就可以处理了): 在Manifest中的一个activity下插入如下代码 <intent-filter andro

iOS多线程之GCD小记

iOS多线程之GCD小记 iOS多线程方案简介 从各种资料中了解到,iOS中目前有4套多线程的方案,分别是下列4中: 1.Pthreads 这是一套可以在很多操作系统上通用的多线程API,是基于C语言的,在在oc中使用时需要包含 #import<pthread.h> 使用这种多线程方案需要手动处理线程的各个状态的转换,也就是要管理线程的生命周期. 2.NSThread 这种多线程方案经过了苹果的封装,是一种面向对象的方案,因此可以直接操控线程对象,相对来说比较便捷,其生命周期也要手动管理 3.