MPRemoteCommandCenter暂停/播放按钮没有切换?

Col*_*ght 10 objective-c media-player ios

我在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
}
Run Code Online (Sandbox Code Playgroud)

这是问题,媒体中心应该显示一个暂停按钮,如应用程序而不是播放按钮.

让我知道,如果你们能想到任何事情,我会很乐意帮助你.这让我疯了

pap*_*tas 11

关于我如何解决这个问题的一些指示.阅读苹果文档,它说"您的应用程序必须是"正在播放"应用程序.应用程序在开始播放音频之前不会接收远程控制事件"

所以先开始播放音频.

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

另请注意,我在模拟器中切换问题,它在设备上切换正常,但在模拟器中没有切换,这需要花费16个小时才能搞清楚:)

  • 不知道为什么这会得到一次投票.模拟器对MPRemoteCommandCenter反应不好的事实对我帮助很大! (5认同)