0

これはこれに似た質問です。しかし、私はまだ何をすべきかを完全に理解できません。

だから、私は iPod と同様に機能するタブバー アプリを持っています。1つのView Controllerは「NOW PLAYING」View Controllerであり、インデックス1のView Controllerです。したがって、その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 に答える