iOS的remoteControlReceivedWithEvent方法没有被调用。

3
在 .plist 文件中,我添加了正常的链接:http://tinyurl.com/c7e9joy。当 iPhone 被锁定或者我在应用程序外部打开遥控按钮时,我可以看到应用程序的标志和标题,但它们没有反应。(我正在自己的 iPhone 上进行测试。)
// Makes sure we are able to connect to the media buttons on the lock screen.
- (BOOL) canBecomeFirstResponder
{
return YES;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

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

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
NSLog(@"REMOTE");
if (receivedEvent.type == UIEventTypeRemoteControl) {

    switch (receivedEvent.subtype) {

        case UIEventSubtypeRemoteControlTogglePlayPause:
            [self playBtnPressed:nil];

            break;

        case UIEventSubtypeRemoteControlPreviousTrack:
            [self skipTrack:nil];
            break;

        case UIEventSubtypeRemoteControlNextTrack:
            [self skipTrack:nil];
            break;

        default:
            break;
    }
}
}
2个回答

2
您可能还需要添加以下内容:
- (BOOL)canBecomeFirstResponder {
    return YES;
}

任何UIResponder的子类都需要实现这个方法,否则它将无法接受第一响应者状态。

2

您正在取消注册viewWillDisapear中的事件,这意味着每当视图在手机上不可见时,您将不会注册该事件。我建议您将注册和取消注册更改为viewDidLoad和viewDidUnload钩子。


已经修改了,但仍然没有效果,似乎根本没有捕捉到事件。 - Miko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接