2013-10-01 3 views
4

Мне сложно найти, почему в iOS 7 удаленные элементы управления не работают. В прошивке 7, на экране блокировки или даже в Центре управления, кнопки не реагируют и самое смешной в том, что она отлично работает на прошивке 6.RemoteControlReceivedWithEvent в iOS 7 issue

Вот код, я использую:

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

if (receivedEvent.type == UIEventTypeRemoteControl) { 

    switch (receivedEvent.subtype) { 

     case UIEventSubtypeRemoteControlTogglePlayPause: 
      if (player.playbackState == MPMusicPlaybackStatePlaying) { 

       [player pause]; 
      } 
      else { 
       [player play]; 
      } 
      break; 
     case UIEventSubtypeRemoteControlPreviousTrack: 
      break; 

     case UIEventSubtypeRemoteControlNextTrack: 
      break; 

     default: 
      break; 
    } 
}} 

Здесь я нашел информацию о том, как выполнить это:

https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Remote-ControlEvents/Remote-ControlEvents.html

Любые идеи, почему это происходит? Она работает на IOS 6, но не IOS 7.

Благодарности

ответ

9

Я столкнулся с этой же проблемой, и я в конечном итоге снимая случае заявление UIEventSubtypeRemoteControlTogglePlayPause и добавил заявления случае UIEventSubtypeRemoteControlPlay и UIEventSubtypeRemoteControlPause индивидуально. У меня нет хорошего объяснения, почему это изменилось.

* UPDATE *

Я обнаружил, что UIEventSubtypeRemoteControlTogglePlayPause вызывается, когда пользователь использует их гарнитуру для управления проигрывателем. Просто FYI.

+0

идеальный! Работал так, как я хотел! Спасибо –

+0

Молодцы !! это была проблема, не так просто найти мысль. –

+0

Хорошо сыграл, вы просто сэкономите время – David

0

Я думаю, что его лучшее решение:

case UIEventSubtypeRemoteControlTogglePlayPause: 
case UIEventSubtypeRemoteControlPlay: 
case UIEventSubtypeRemoteControlPause: 
    if (_paused) { 
     [self play:self]; 
    } else { 
     [self pause:self]; 
    } 
    break; 
Смежные вопросы