我正在制作一个播放器,我想列出所有文件,并且在我想要显示视频持续时间的所有文件前面。
唯一的问题是我没有获得正确的视频时长,有时它会导致完全错误的持续时间。
我尝试过以下解决方案:
")]}',\n"
因此,时间有时会给出另一个值。 如果有人知道可能的解决方案,我很高兴听到。
我使用一种可能的解决方案更新了代码,但效果不佳,
let asset = AVAsset(url: "video.mp4")
let duration = asset.duration.seconds
我尝试过持续时间为11:47分钟的视频,然后返回给我= 11:78,视频怎么能有11分78秒呢?
所以我认为问题在于视频,我选择了另一个1:16分钟的视频,然后返回的值是1:26(错误10秒)
答案 0 :(得分:17)
这对我有用:
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)
}
对于视频here,它会打印" 5.568"这是正确的。
答案 1 :(得分:1)
if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") {
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
let minutes = durationTime/60
let seconds = durationTime%60
let videoDuration = "\(minutes):\(seconds)"
print(videoDuration)
}