我正在使用MPRemoteCommandCenter和MPNowPlayingInfoCenter来控制后台音频的播放。设置命令回调:
let commandCenter = MPRemoteCommandCenter.sharedCommandCenter()
commandCenter.pauseCommand.enabled = true
commandCenter.pauseCommand.addTarget(self, action: #selector(AudioPlayer.remoteCmdPause))
commandCenter.playCommand.enabled = true
commandCenter.playCommand.addTarget(self, action: #selector(AudioPlayer.remoteCmdplay))
并更新音频数据:
let artWork = MPMediaItemArtwork(image: image)
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = [
MPMediaItemPropertyTitle: self.title,
MPMediaItemPropertyArtwork: artWork,
MPMediaItemPropertyPlaybackDuration: self.duration,
//MPNowPlayingInfoPropertyElapsedPlaybackTime: 0
]
这显示了我可以在remoteCmdPause和remoteCmdPlay回调中处理的暂停/播放按钮。它还显示了要隐藏或注册处理程序的音量条,以便我可以对音量更改做出反应。
是否可以注册一个用于音量更改的回叫,以便执行除(或除此之外)增大/减小音量以外的操作?
如果不是,在后台播放音频时是否可以从锁定屏幕隐藏音量控制栏?
最佳答案
至于我的问题的回调部分,似乎没有任何特定的远程命令来处理锁定屏幕上的音量更改。只要观察“outputVolume”(通过observeValueForKeyPath)就可以了。
隐藏音量条仍然是一个问题,但现在不再是必需的(至少就我而言)。