An extension
https://stackoverflow.com/questions/40495301/what-does-is-unavailable-use-truncatingremainder-instead-mean
extension CMTime {
var toTimeString:String {
let totalSeconds1 = CMTimeGetSeconds(self)
let totalSeconds2 = CMTimeGetSeconds(self)
if totalSeconds1.isNaN {
return "00:00:00"
}else if totalSeconds1.isZero {
return "00:00:00"
}
let hours:Int = Int(totalSeconds1 / 3600)
let minutes:Int = Int(totalSeconds1.truncatingRemainder(dividingBy: 3600) / 60)
let seconds:Int = Int(totalSeconds2.truncatingRemainder(dividingBy: 60))
return String(format: "%02i:%02i:%02i", hours, minutes, seconds)
}
}