Получить точную продолжительность видео
Я делаю плеер, и я хочу перечислить все файлы, и перед всеми файлами я хочу представить продолжительность видео.
единственная проблема заключается в том, что я не получаю правильную продолжительность видео, иногда он возвращает продолжительность совершенно неправильно.
Я пробовал следующее решение:
let asset = AVAsset(url: "video.mp4")
let duration = asset.duration.seconds
Так что это время, иногда дают значение, иногда другой. если кто-то знает возможное решение, я рад слышать.
Я Обновить код используя одно возможное решение, но оно не сработало хорошо,
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
let minutes = Double(durationTime / 60)
Я пробовал с видео продолжительностью 11:47 минут, и он возвращает меня = 11: 78, как видео может иметь 11 минут и 78 секунд?
поэтому я думаю, что проблема с видео, и я выбрал другое видео 1: 16 минут, и снова возвращаемое значение 1: 26 (10 секунд неправильно)
1 ответов
это работает для меня:
import AVFoundation
import CoreMedia
...
if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") {
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
print(durationTime)
}
видео здесь он печатает "5.568", что является правильным.