zoukankan      html  css  js  c++  java
  • 耳机线控

    当然你的程序不一定是播放器应用,但是我们仍然可以让它具有这个功能,让用户通过耳机进行一些比较简单常用的操作,这样是不是很酷呢?
    具体的怎么实现呢?废话不多说,我们直奔主题:
    1,允许接受Remote事件

    [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 {

     UIEventSubtypeMotionShake = 1,

     UIEventSubtypeRemoteControlPlay = 100,

    UIEventSubtypeRemoteControlStop = 102,

    UIEventSubtypeRemoteControlNextTrack = 104,

    UIEventSubtypeRemoteControlBeginSeekingBackward = 106,

    UIEventSubtypeRemoteControlBeginSeekingForward = 108,

    } 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;
            }
        }
    }


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

     

    原文网址: http://blog.csdn.net/slinloss/article/details/18085145

     
     
  • 相关阅读:
    Firebase 如何创建登录 Token
    GitHub 如何从特定的版本中创建分支
    Firebase 命令行工具
    Python 日期格式和时间以及当前时间和时间戳
    Python DataTime 日期处理
    Python With 关键字和语句
    完整的微信接口类
    HashMap
    java运行时数据区域
    POI学习
  • 原文地址:https://www.cnblogs.com/Cheetah-yang/p/4656232.html
Copyright © 2011-2022 走看看