3

アプリがバックグラウンドにあるとき、または画面がロックされているときに、リモコンまたはイヤフォンがオーディオを再生および一時停止できるようにしようとしています。したがって、viewDidLoadには次のものがあります。

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

私はそれから持っています:

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



if (receivedEvent.type == UIEventTypeRemoteControl) {



switch (receivedEvent.subtype) {



    case UIEventSubtypeRemoteControlTogglePlayPause:

        [self playOrStop];

        break;



    case UIEventSubtypeRemoteControlPreviousTrack:


        break;



    case UIEventSubtypeRemoteControlNextTrack:


        break;



    default:

        break;

}

}


}

しかし、それは決して呼び出されません。バックグラウンドでの実行がオンになり、AVSession が AppDelegate に設定されます。私は途方に暮れています。

4

2 に答える 2

2

おそらく次も追加する必要があります。

- (BOOL)canBecomeFirstResponder {
    return YES;
}

のサブクラスはUIResponderこれを実装する必要があります。そうしないと、ファーストレスポンダーのステータスを受け入れません。

于 2013-04-10T15:54:40.873 に答える
1

入れてみて

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

viewWillAppear:(BOOL)では、viewDidLoad の代わりにアニメーション化されます。

于 2012-11-17T04:10:42.097 に答える