MPRemoteCommandCenter pause/play 按钮未切换?

MPRemoteCommandCenter pause/play button not toggling?

我在 MPRemoteCommandCenter 中切换播放和暂停按钮时遇到问题。无论出于何种原因,音频和事件都将正常工作,但命令中心不会将播放按钮更改为暂停按钮。这是我的代码...

- (void)setupMPRemoteCommandCenter{
    MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];

    MPRemoteCommand *play = [commandCenter playCommand];
    [play setEnabled:YES];
    [play addTarget:self action:@selector(playAudio:)];

    MPRemoteCommand *pause = [commandCenter pauseCommand];
    [pause setEnabled:YES];
    [pause addTarget:self action:@selector(playAudio:)];


    [commandCenter.skipBackwardCommand setPreferredIntervals:@[@30.0]];
    MPRemoteCommand *skipBackwards = [commandCenter skipBackwardCommand];
    [skipBackwards setEnabled:YES];
    [skipBackwards addTarget:self action:@selector(skipBackwardEvent:)];

    [commandCenter.skipForwardCommand setPreferredIntervals:@[@30.0]];
    MPRemoteCommand *skipForwards = [commandCenter skipForwardCommand];
    [skipForwards setEnabled:YES];
    [skipForwards addTarget:self action:@selector(skipForwardEvent:)];

}
-(void)playAudio: (MPRemoteCommandHandlerStatus *)event{
    [self playAction];
    //playAction handles the audio pausing and toggling the play button on the app
}

如果你们能想到什么,请告诉我,我很乐意提供帮助。这让我抓狂

一些关于我如何解决这个问题的建议。 阅读苹果 documentation 它说 "Your app must be the “Now Playing” app. An app does not receive remote control events until it begins playing audio"

所以首先开始播放音频。

MPRemoteCommandCenter 是一个相当独立的模块。 setEnabled 用于明确表示将不支持某些内容。不要在事件期间将其用作切换,AVFoundation 将自行处理。

另请注意,我在模拟器中切换时遇到问题,它在设备上切换正常,但在模拟器中却不行,这花了 16 个小时才搞清楚:)