Я создал MPNowPlayingInfoCenter и передал в него текущее время трека и общее время трека. Но возникает такая проблема. Если я приостановлю дорожку в MPNowPlayingInfoCenter, подожду некоторое время, а затем нажму кнопку воспроизведения, то я увижу, что текущее время изменилось, хотя оно должно было остаться на том же месте, потому что дорожка не воспроизводилась. Как это обойти?
...
func setupNotificationView(...) {
nowPlayingInfo = [String : Any]()
...
nowPlayingInfo?[MPMediaItemPropertyPlaybackDuration] = track.duration
nowPlayingInfo?[MPNowPlayingInfoPropertyElapsedPlaybackTime] = player.currentTime().seconds
nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = player.rate
MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
}
...
func setupMediaPlayerNotificationView() {
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.addTarget { [unowned self] event in
if self.player.rate == 0.0 {
self.player.play()
return .success
}
return .commandFailed
}
commandCenter.pauseCommand.addTarget { [unowned self] event in
if self.player.rate == 1.0 {
self.player.pause()
return .success
}
return .commandFailed
}
...
}