У меня есть наблюдатель времени для AVPlayer, который отлично работает. Im пытается получить его к обратному отсчету от продолжительности звука 0.PeriodTimeObserver для обратного отсчета длительности в AVPlayer с Swift
Он работает и делает отсчет сейчас. У меня просто проблемы с форматированием.
Если вы видите картинку ниже, то вы увидите, что я имею в виду. Это идет от целых минут: секунды 3:00, к странным цифрам 3: -1 ect.
любые идеи, что я сделал не так?
Heres код для таймера:
let interval = CMTime(value: 1, timescale: 1)
self.audioPlayer?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main, using: { (progressTime) in
let secondsProgress = CMTimeGetSeconds(progressTime)
let secondsStringProgress = String(format: "%02d", Int((secondsProgress.truncatingRemainder(dividingBy: 60))))
let minuitesStringProgress = String(format: "%02d", Int(secondsProgress)/60)
//self.countDownLabel.text = "\(minuitesStringProgress):\(secondsStringProgress)"
if let duration = self.audioPlayer?.currentItem!.asset.duration {
let secondsDuration = CMTimeGetSeconds(duration)
let secondsStringDuration = String(format: "%02d", Int((secondsDuration.truncatingRemainder(dividingBy: 60))))
let minuitesStringDuration = String(format: "%02d", Int(secondsDuration)/60)
let secondsString = String(format: "%02d", Int(secondsStringDuration)! - Int(secondsStringProgress)!)
let minuitesString = String(format: "%02d", Int(minuitesStringDuration)! - Int(minuitesStringProgress)!)
self.countDownLabel.isHidden = false
self.countDownLabel.text = "\(minuitesString):\(secondsString)"
self.horizontalSlider.value = Float(secondsProgress/secondsDuration)
self.circleSlider.value = Float(secondsProgress/secondsDuration)
}
})
Это очень хороший чистый способ достижения этой цели. Спасибо, что поделился! – Pippo
Как сторона не, это сгладило мою очистку также. двойная победа! – Pippo
@Pippo Спасибо и счастливое кодирование –