如何通过MPRemoteCommandEvent设置播放时间?

时间:2018-12-02 23:39:19

标签: swift avaudioplayer mpremotecommandcenter

我有代码回调:

commandCenter.changePlaybackPositionCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in

        self.player.currentTime = ???
        self.setupNowPlaying(img: self.image)
        return .success
    }

它被调用。但是,我该如何设置开始播放的实际时间。该事件似乎没有给我时间用户拖动到的时间。我如何获得该价值?

3 个答案:

答案 0 :(得分:2)

  

该事件似乎没有给我时间用户拖动到

是的。 event有一个positionTime

答案 1 :(得分:1)

将该事件作为MPChangePlaybackPositionCommandEvent进行广播。

MPChangePlaybackPositionCommandEvent具有positionTime属性,它是播放位置。

commandCenter.changePlaybackPositionCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in

    if let changePlaybackPositionCommandEvent = event as? MPChangePlaybackPositionCommandEvent
    {
        let positionTime = changePlaybackPositionCommandEvent.positionTime      
        self.player.currentTime = positionTime   
        return .success
    }
}

答案 2 :(得分:0)

如上所示,对于所有事件,必须将其强制转换为与命令匹配的事件类型,然后获取值。将事件强制转换为MPChangePlaybackPositionCommandEvent后,您可以从event.positionTime获得时间 跳过的另一个示例是let event = event as! MPSkipIntervalCommandEvent