博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios 耳机线控
阅读量:4110 次
发布时间:2019-05-25

本文共 2464 字,大约阅读时间需要 8 分钟。

当你使用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;
        }
    }
}


把上面代码加进去就能获取耳机线控的各个点击事件,嘀嘀打车之前版本中有一个耳机抢单的功能,就是这么实现的

你可能感兴趣的文章
Oracle -常用命令
查看>>
JAVA技术简称
查看>>
ORACLE模糊查询优化浅谈
查看>>
2016——个人年度总结
查看>>
2017——新的开始,加油!
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.1、类和实例
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>