锁屏iPod控制无法使用Spotify音乐播放器

6

我在我的应用中添加了Spotify播放器,同时使用MPMusicPlayerController播放音乐。当从Spotify播放音乐且屏幕锁定时,用户按下锁定屏幕上的播放/暂停和快进/快退按钮时,无法接收到远程控制事件。

如果从MPMusicPlayerController播放音乐,则可以根据以下代码接收远程控制事件:

-(void) ViewDidLoad {
    ...
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
    ...
}

并且

- (BOOL) canBecomeFirstResponder
{
    return YES;
}

- (void) remoteControlReceivedWithEvent: (UIEvent*) event
{
    // see [event subtype] for details
    if (event.type == UIEventTypeRemoteControl) {
        // We may be receiving an event from the lockscreen
        switch (event.subtype) {
            case UIEventSubtypeRemoteControlTogglePlayPause:
            case UIEventSubtypeRemoteControlPlay:
            case UIEventSubtypeRemoteControlPause:
                // User pressed play or pause from lockscreen
                [self playOrPauseMusic:nil];
                break;

            case UIEventSubtypeRemoteControlNextTrack:
                // User pressed FFW from lockscreen
                [self fastForwardMusic:nil];
                break;

            case UIEventSubtypeRemoteControlPreviousTrack:
                // User pressed rewind from lockscreen
                [self rewindMusic:nil];
                break;

            default:
                break;
        }
    }
}

当应用进入后台时,iPod控件是可见的,但当我按下暂停键时,它们不会响应。相反,当我按下暂停键时,iPod控件会消失。如果从锁屏界面播放Spotify等流媒体音频时,需要添加什么内容才能使其检测到播放/暂停和FFW/RWD?

2个回答

2
我相信我以前遇到过这个问题。如果我没记错的话,我添加了以下内容:

-(void)remoteControlReceivedWithEvent:(UIEvent *) event { ... }

以及

- (BOOL) canBecomeFirstResponder { return YES; }

针对应用程序委托(这也是我的音频控制器所在的位置),我遇到了一个问题,即在我想要捕获UIEventTypeRemoteControl通知时,UIViewControllers不处于活动状态。

你可以试试这个方法,看看是否有帮助。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - JeffB6688
我还确保我的音频播放器可以通过appDelegate进行引用。这样无论你在哪个视图控制器或视图中,它都可以无缝地被控制。这就是我采取的方法。祝你好运。 - Caleb

0
经过进一步调查,我发现如果在我的应用程序进入后台和接收到远程控制事件时包含以下代码,则iPod控件不会消失。
// Set up info center to display album artwork within ipod controls (needed for spotify)
MPMediaItemArtwork *ipodControlArtwork = [[MPMediaItemArtwork alloc]initWithImage:artworkImage];
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = [NSDictionary dictionaryWithObjectsAndKeys:nowPlayingTitle, MPMediaItemPropertyTitle,
                                                         nowPlayingArtist, MPMediaItemPropertyArtist, ipodControlArtwork, MPMediaItemPropertyArtwork,  [NSNumber numberWithDouble:0.0], MPNowPlayingInfoPropertyPlaybackRate, nil];

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