add a new format for video duration

This commit is contained in:
ryanzhao 2023-04-05 14:57:25 +08:00
parent 1a672cdd0a
commit 16d4d0128e
3 changed files with 11 additions and 1 deletions

View File

@ -184,7 +184,7 @@ extension MediaInfoVC {
}() }()
durationLabel.text = { durationLabel.text = {
guard let duration = attachment.duration else { return "N/A" } guard let duration = attachment.duration else { return "N/A" }
return floor(duration).formatted(format: .hoursMinutesSeconds) return floor(duration).formatted(format: .videoDuration)
}() }()
} }
} }

View File

@ -84,6 +84,15 @@ public extension String {
let secondsPerWeek: TimeInterval = (secondsPerDay * 7) let secondsPerWeek: TimeInterval = (secondsPerDay * 7)
switch format { switch format {
case .videoDuration:
let seconds: Int = Int(duration.truncatingRemainder(dividingBy: 60))
let minutes: Int = Int((duration / 60).truncatingRemainder(dividingBy: 60))
let hours: Int = Int(duration / 3600)
guard hours > 0 else { return String(format: "%02ld:%02ld", minutes, seconds) }
return String(format: "%ld:%02ld:%02ld", hours, minutes, seconds)
case .hoursMinutesSeconds: case .hoursMinutesSeconds:
let seconds: Int = Int(duration.truncatingRemainder(dividingBy: 60)) let seconds: Int = Int(duration.truncatingRemainder(dividingBy: 60))
let minutes: Int = Int((duration / 60).truncatingRemainder(dividingBy: 60)) let minutes: Int = Int((duration / 60).truncatingRemainder(dividingBy: 60))

View File

@ -7,6 +7,7 @@ public extension TimeInterval {
case short case short
case long case long
case hoursMinutesSeconds case hoursMinutesSeconds
case videoDuration
} }
func formatted(format: DurationFormat) -> String { func formatted(format: DurationFormat) -> String {