Как обновить позицию воспроизведения в центре управления?

#ios #swift #control-center

#iOS #swift #центр управления

Вопрос:

Вот как я наблюдаю за изменениями из командного центра:

     commandCenter.playCommand.addTarget(self, action: #selector(play))
    commandCenter.pauseCommand.addTarget(self, action: #selector(pause))
    commandCenter.changePlaybackPositionCommand.addTarget { event in
        let seconds = (event as? MPChangePlaybackPositionCommandEvent)?.positionTime ?? 0
        let time = CMTime(seconds: seconds, preferredTimescale: 1)
        self.player.seek(to: time)
        return .success
    }
  

Когда я меняю положение ползунка, мое приложение получает обратный вызов, и положение звука обновляется, но … положение ползунка в центре управления возвращается в предыдущее состояние. Почему?

Вопрос в том:

Почему он не остается там, где я оставил палец, вместо того, чтобы вернуться в предыдущее положение?

Ответ №1:

Вы должны установить MPNowPlayingInfoPropertyPlaybackRate, MPMediaItemPropertyPlaybackDuration и MPNowPlayingInfoPropertyElapsedPlaybackTime для nowPlayingInfo. Вы хотите обновлять nowPlayingInfo каждый раз при воспроизведении / паузе / пропуске.