アプリのロック画面/再生中のコントロールを使用しようとしていますが、イベントを受信していません。ドキュメントはそれをかなり簡単に見えるようにしているので、結果が得られなかったときに少し驚いた。私のアプリは、デバイスでオーディオを再生する以外の目的でリモートコントロールイベントを受信する必要があります。NSLogで確認を印刷するだけで、これをテストしようとしました。ドキュメントに記載されていないオーディオまたはメディアフレームワークを使用する必要がありますか?警告やエラーが表示されないので、問題はないと思います...リモートコントロールイベントが登録されない理由に関する洞察をいただければ幸いです。
関連するコードは次のとおりです。
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
//Register for lock screen controls
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//Unregister lock screen controls
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder{
return YES;
}
//Lock screen controls
- (void)remoteControlReceivedWithEvent:(UIEvent *)event{
NSLog(@"RECEIVED");
if (event.type == UIEventTypeRemoteControl) {
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"RECEIVED");
break;
case UIEventSubtypeRemoteControlPreviousTrack:
NSLog(@"RECEIVED");
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"RECEIVED");
break;
default:
break;
}
}
}