在后台播放音频时隐藏或处理iOS锁定屏幕上的音量栏

时间:2017-01-05 17:32:40

标签: ios swift

我正在使用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回调中处理的暂停/播放按钮。它还显示了我要隐藏或注册处理程序的音量条,以便我可以对音量变化作出反应。

是否可以为音量变化注册回叫,以便执行除(或增加/增加)音量以外的操作?
如果不是,在后台播放音频时是否可以从锁定屏幕隐藏音量控制条?

1 个答案:

答案 0 :(得分:0)

至于我的问题的回调部分,似乎没有任何特定的远程命令来处理来自锁定屏幕的音量变化。只需观察“outputVolume”(通过observeValueForKeyPath)即可 隐藏音量栏仍然是一个问题,但不再是必要的(至少在我看来)。