[英]iOS Swift - MPCommandCenter & NowPlayingInfoCenter Controlling Music on Lock Screen
我正在創建一個使用MPMediaItems和MPMediaPlayerController的音樂播放器(在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文檔。
我是否缺少一些關鍵步驟以便從應用程序中注冊遠程命令?
問題是您的播放器是MPMusicPlayerController.applicationMusicPlayer()
。 您不能將應用程序音樂播放器用作遠程控制目標。
如果要使用遠程控制目標功能,則需要將播放器設置為AVAudioPlayer之類的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.