2013-07-22 2 views
0

У меня есть приложение iOS, которое транслирует музыку с использованием RadioKit SDK. Звук прекрасно воспроизводится при переключении между различными видами контроллера панели вкладок, однако, когда гарнитура подключена к сети, и пользователь просматривает одно из вторичных видов вкладок (всего 5 основных, 1 первичный для запуска приложения и 4 других), если они пытаются нажать кнопку воспроизведения/паузы, приложение не распознает действие. Если он играет, он не остановится, если он приостановлен, он не будет воспроизводиться. Однако приложение распознает изменения громкости гарнитуры.Кнопка гарнитуры Нажмите не распознано, когда во вторичных представлениях приложения iOS

Это поведение согласуется с тем, присутствует ли приложение или если оно находится в фоновом режиме или если устройство заблокировано.

Я сделал несколько тяжелых поисков и, похоже, не понял этого. Помощь приветствуется, спасибо!

IOS версии 6.1.3
IOS SDK версии 6.1
Xcode версия 4.6.3

+0

Не могли бы вы принять ответ правильно, если он действительно помог вам. ура – Dimitris

ответ

1

Вы хотите слушать -(void)remoteControlReceivedWithEvent:(UIEvent *)event

Сделать базу UIViewController, давайте назовем его BaseViewController и добавьте следующее:

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

    if (event.type == UIEventTypeRemoteControl) { 

     switch(event.subtype) { 
      case UIEventSubtypeRemoteControlTogglePlayPause: 

       break; 
      case UIEventSubtypeRemoteControlPlay: 

       break; 
      case UIEventSubtypeRemoteControlPause: 

       break; 
      case UIEventSubtypeRemoteControlStop: 

       break; 
      default: 
       break; 

     } 
    } 
    else{ 
     [super remoteControlReceivedWithEvent:event]; 
    } 
} 

Также вы хотите включить следующее, в базовый класс, чтобы вы могли на самом деле получать любые события дистанционного управления.

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    UIApplication *application = [UIApplication sharedApplication]; 
    if ([application respondsToSelector:@selector(beginReceivingRemoteControlEvents)]) { 
     [application beginReceivingRemoteControlEvents]; 
    } 

    [self becomeFirstResponder]; 

} 

И, наконец, все UIViewControllers являются подклассом BaseViewController.

 Смежные вопросы

  • Нет связанных вопросов^_^