OGeek|极客世界-中国程序员成长平台

标题: objective-c - 未收到远程控制事件 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 21:14
标题: objective-c - 未收到远程控制事件

我正在尝试为我的应用使用锁定屏幕/正在播放控件,但没有收到任何事件。文档使它看起来非常简单,所以当我没有得到任何结果时我有点惊讶。我的应用需要接收远程控制事件,以便在设备上播放音频之外的其他用途。我试图通过使用 NSLog 打印出一些确认来对此进行测试。我是否需要使用文档中未提及的音频或媒体框架?我没有收到任何警告或错误,所以我认为这不应该有任何问题...任何有关远程控制事件未注册原因的见解将不胜感激

以下是相关代码:

- (void)viewDidAppearBOOL)animated{
    [super viewDidAppear:animated];

    //Register for lock screen controls
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)viewWillDisappearBOOL)animated{
    [super viewWillDisappear:animated];

    //Unregister lock screen controls
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
}

- (BOOL)canBecomeFirstResponder{
    return YES;
}

//Lock screen controls
- (void)remoteControlReceivedWithEventUIEvent *)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;
        }
    }
}



Best Answer-推荐答案


除了 Jojas 提到的内容之外,您还需要确保您有一个活跃的 Audio Session 。看看 [AVAudioSession setActive:withFlags:error:]。

关于objective-c - 未收到远程控制事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873267/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4