我正在为广播流应用程序实现MPRemoteCommandCenter。它会在锁定屏幕的情况下播放音频,并在显示带有音量控件的UI时显示暂停按钮。

一旦我按下暂停按钮,音频就会停止并且整个音频控件UI都消失了,因此我无法按您期望的那样通过按播放按钮来取消暂停音频播放。

按下暂停按钮将调用pauseEvent方法。见下文。

有人能给我一些有关我哪里出问题的提示吗?

这是我的代码:

- (id) init
{
    if (self = [super init])
    {
        _streaming = NO;

        _rcc = [MPRemoteCommandCenter sharedCommandCenter];

        MPRemoteCommand *pauseCommand = [_rcc pauseCommand];
        [pauseCommand setEnabled:YES];
        [pauseCommand addTarget:self action:@selector(pauseEvent)];

        MPRemoteCommand *playCommand = [_rcc playCommand];
        [playCommand setEnabled:YES];
        [playCommand addTarget:self action:@selector(playEvent)];

    }
    return self;
}


-(void) pauseEvent
{
    [_rcc.playCommand setEnabled:YES];
    [_rcc.pauseCommand setEnabled:NO];
    [self.player pause];
    _streaming = NO;
}

-(void) playEvent
{
    [self.player play];
    [_rcc.playCommand setEnabled:NO];
    [_rcc.pauseCommand setEnabled:YES];
    _streaming = YES;
}

最佳答案

出于某种原因,只修复了此问题,如果您没有将任何信息设置为MPNowPlayingInfoCenter,那只是发生在我身上,我添加了一个随机标题,现在控件保留在屏幕上。

这种行为很奇怪,但也可以理解,如果遥控器上什么也没有显示,我可以认为可以将其关闭。

10-07 17:30