我正在创建一个使用MPMediaItems和MPMediaPlayerController的音乐播放器(In Swift 3)。我不能为我的生活弄清楚如何从锁定屏幕或通知中心控制音乐...
我已经阅读了我在MPRemoteCommandCenter和MPNowPlayingInfoCenter上找到的所有文章,我无法让它发挥作用。
我启用了背景音乐播放,目前音乐继续在应用外播放,但没有收到远程命令。
以下是当前使用的代码
在我的视图中加载我调用以下函数
let player = MPMusicPlayerController.applicationMusicPlayer()
let commandCenter = MPRemoteCommandCenter.shared()
func configureCommandCenter() {
print("Enter configuration")
self.commandCenter.playCommand.addTarget { [weak self] event -> MPRemoteCommandHandlerStatus in
guard let sself = self else { return .commandFailed }
print("Play")
sself.player.play()
self?.getNowPlayingItem()
return .success
}
self.commandCenter.pauseCommand.addTarget { [weak self] event -> MPRemoteCommandHandlerStatus in
guard let sself = self else { return .commandFailed }
print("Pause")
sself.player.pause()
self?.getNowPlayingItem()
return .success
}
self.commandCenter.nextTrackCommand.addTarget { [weak self] event -> MPRemoteCommandHandlerStatus in
guard let sself = self else { return .commandFailed }
print("next")
sself.player.skipToNextItem()
self?.getNowPlayingItem()
return .success
}
self.commandCenter.previousTrackCommand.addTarget { [weak self] event -> MPRemoteCommandHandlerStatus in
guard let sself = self else { return .commandFailed }
print("Prev")
sself.player.skipToPreviousItem()
self?.getNowPlayingItem()
return .success
}
}
重申我的项目编译得很好,播放媒体,在应用程序未对焦时以及手机被锁定时继续播放媒体,但是在应用程序中没有看到任何命令,导致应用程序无法通过锁定屏幕或通知中心。任何帮助将不胜感激。
我还想提一下,我已经查看了与RemoteCommands和InfoCenter相关的Apple API文档。
我是否遗漏了一些关键步骤,以便从应用程序中注册远程命令?
答案 0 :(得分:2)
问题是你的播放器是MPMusicPlayerController.applicationMusicPlayer()
。您无法将应用程序音乐播放器用作遥控目标。
如果你想要远程控制目标功能,你需要你的播放器就像AVAudioPlayer。