我正在使用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回调中处理的暂停/播放按钮。它还显示了我要隐藏或注册处理程序的音量条,以便我可以对音量变化作出反应。
是否可以为音量变化注册回叫,以便执行除(或增加/增加)音量以外的操作?
如果不是,在后台播放音频时是否可以从锁定屏幕隐藏音量控制条?
答案 0 :(得分:0)
至于我的问题的回调部分,似乎没有任何特定的远程命令来处理来自锁定屏幕的音量变化。只需观察“outputVolume”(通过observeValueForKeyPath)即可 隐藏音量栏仍然是一个问题,但不再是必要的(至少在我看来)。