Я пытаюсь сделать AVPlayer резюме от того, где он остановился, путем сделать глобальное значение типа CMtime и хранить CurrentTime затем использовать его, чтобы возобновить воспроизведение с места остановкиAVPlayer всегда начинается с начала
Мой код:
override func viewDidLoad() {
super.viewDidLoad()
url = URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3")!
let playerItem:AVPlayerItem = AVPlayerItem(url: url as URL)
player = AVPlayer(playerItem: playerItem)
let duration : CMTime = playerItem.asset.duration
let seconds : Float64 = CMTimeGetSeconds(duration)
playbackSlider!.maximumValue = Float(seconds)
playbackSlider?.addTarget(self, action: #selector(playbackSliderValueChanged(_:)), for: .valueChanged)
self.view.addSubview(playbackSlider!)
player!.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 1), queue: DispatchQueue.main) { (CMTime) -> Void in
if player!.currentItem?.status == .readyToPlay {
let time : Float64 = CMTimeGetSeconds(player!.currentTime())
self.playbackSlider!.value = Float (time) }}
@IBAction func playbackSliderValueChanged(_ sender: UISlider) {
let seconds : Int64 = Int64(playbackSlider.value)
let targetTime:CMTime = CMTimeMake(seconds, 1)
player!.seek(to: targetTime)
if player!.rate == 0
{
player?.play()
}
}
Когда я пытаюсь использовать seek (to :) ничего не изменилось, это также начинается с начала!
я пытаюсь изменить CURRENTTIME с помощью
if let currentTime = player?.currentTime() {
player?.seek(to: times2! )
}
я не знаю, почему он всегда начинается с начала я использовал AVAudioPlayer, и это было гораздо проще, чем AVPlayer , но потому, что мне нужно, чтобы поток Audio I изменить его AVPlayer