ios 耳機線控

來源:互聯網
上載者:User

標籤:

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

ios 耳機線控

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.