1
Ich erstelle in einem Projekt, dass ich eine aktuelle Zeit in einem Etikett anzeigen möchte.So ändern Sie den Beschriftungsstil CMTimeGetSeconds
Ich habe Timer und Label programmgesteuert mithilfe von CMTimeGetSeconds festgelegt, um Sekunden zu verfolgen.
Ich möchte Nummer löschen, die über 10 Minuten zählt (wie die Länge des Videos nur zwei Minuten lang ist).
Was ist der gute Ansatz dafür?
let currentTimeLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.text = "0:00"
return label
}()
fileprivate func setupPlayerView() {
player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges", options: .new, context: nil)
/track player progress
let interval = CMTime(value: 1, timescale: 2)
player?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main, using: { (progressTime) in
let seconds = CMTimeGetSeconds(progressTime)
let secondsString = String(format: "%02d", Int(seconds.truncatingRemainder(dividingBy: 60)))
let minutesString = String(format: "%02d", Int(seconds/60))
self.currentTimeLabel.text = "\(minutesString):\(secondsString)"
})
Sie Zustand vor der Anzeige Minute prüfen. – KKRocks