应用程序图标在应用切换器中的音乐控件中不显示

3

我正在编写一个流媒体音乐应用程序,但是在设置音乐控制栏屏幕上的图标(当您双击主屏幕并向左滑动时)方面遇到了很多问题。所有文档都说要像这样做,但图标从未出现,我也没有收到事件通知。所有这些代码都在我的播放器视图控制器中。_radioPlayer 是 AVQueuePlayer 的实例。我在这里做错了什么?

- (void)viewWillAppear:(BOOL)animated
{
    UIApplication *application = [UIApplication sharedApplication];
    if([application respondsToSelector:@selector(beginReceivingRemoteControlEvents)])
        [application beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    switch (event.subtype) {
        case UIEventSubtypeRemoteControlTogglePlayPause:
            [_radioPlayer pause];
            break;
        case UIEventSubtypeRemoteControlPlay:
            [_radioPlayer play];
            break;
        case UIEventSubtypeRemoteControlPause:
            [_radioPlayer pause];
            break;
        default:
            break;
    }
}

编辑:我阅读了文档并按照步骤进行操作,但仍未成功。以下是我想到的一些可能原因:

A. 当viewDidAppear被调用时,我的音乐尚未播放。文档中指出:

“您的应用程序必须成为“现在播放”的应用程序。重申一下,即使您的应用程序是第一个响应者,并且您已经打开了事件传递,直到它开始播放音频,您的应用程序才会接收到远程控制事件。”

我尝试在音乐开始播放后调用 beginReceivingRemoteControlEvents: becomeFirstResponder:,但这也不起作用。这些只能在 viewDidAppear:中调用吗? iOS会自动检测何时开始播放音乐,因此这不是必需的吗?

B. 使用AVQueuePlayer有点奇怪。我几乎可以确定这不是问题的原因,因为事件消息由视图控制器处理,而不是播放器本身。


你在info.plist文件中设置了App播放音频所需的后台模式吗? - iiFreeman
1个回答

2
可能是因为您在viewWillAppear中调用了beginReceivingRemoteControlEvents而不是viewDidAppear,所以它可能对您无效。请查看文档 -
- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    // Turn on remote control event delivery

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}

这对我来说不起作用。我在原帖中编辑了关于它不起作用的详细信息。 - AdamPro13
这在我们的应用程序中不起作用,但我创建了另一个项目,它在那里运行正常。我们的应用程序可能有其他问题,但与此问题无关。 - AdamPro13

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