0

这是一个与此类似的问题。但我仍然不知道该怎么做。

所以,我有一个功能类似于 ipod 的标签栏应用程序。一个视图控制器是“NOW PLAYING”视图控制器,它是索引 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(正在播放)来管理我的媒体。

4

1 回答 1

0

我只是把所有东西都塞进 AppDelegate 并告诉 AppDelegate 调用 ViewController 告诉它该做什么,它工作正常。把它放在 AppDelegate 中是不好的做法吗?

于 2013-03-08T18:17:18.347 回答