2013-03-07 38 views
0

这是this类似的问题。但我仍然无法弄清楚该怎么做。遥控事件控制播放

所以,我有一个类似于ipod的tabbar应用程序。一个视图控制器是“正在播放”视图控制器,它是在索引1视图控制器所以,在VC,我有:

- (void)viewDidAppear:(BOOL)animated 
{ 
    // Turn on remote control event delivery 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    // Set itself as the first responder 
    [self becomeFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder 
{ 
    return YES; 
} 

- (void)remoteControlReceivedWithEvent:(UIEvent *)event 
{ 
    NSLog(@"Where is my event?"); 
    if(event.type == UIEventTypeRemoteControl) 
    { 
     switch (event.subtype) { 
      case UIEventSubtypeRemoteControlTogglePlayPause: 
       NSLog(@"Pause"); 
       break; 
      case UIEventSubtypeRemoteControlNextTrack: 
       NSLog(@"Next"); 
       break; 
      case UIEventSubtypeRemoteControlPreviousTrack: 
       NSLog(@"Prev"); 
       break; 
      default: 
       NSLog(@"SOMETHING WAS CLICKED"); 
      break; 

     } 
    } 
} 

我没有收到远程点击无论是在耳机的任何事件或在双主页按钮上单击快捷方式。我在一个真正的iPhone上运行,而不是在模拟器中运行。我正在使用AVQueuePlayer(正在播放)来管理我的媒体。

回答

0

我只是推到一切的AppDelegate中和告诉AppDelegate中调用到ViewController告诉它做什么,它工作得很好。把它放在AppDelegate中是不是很好的做法?