Mr.*_*mes 11 avfoundation avasset swift
我正在制作一个播放器,我想列出所有文件,并且在我想要显示视频持续时间的所有文件前面.
唯一的问题是我没有获得正确的视频持续时间,有时它会导致完全错误的持续时间.
我尝试过以下解决方案:
let asset = AVAsset(url: "video.mp4")
let duration = asset.duration.seconds
Run Code Online (Sandbox Code Playgroud)
因此,时间有时会给出另一个值.如果有人知道可能的解决方案,我很高兴听到.
我已经使用一种可能的解决方案更新了代码但是它运行不正常,
let asset = AVAsset(url: url)
let duration = asset.duration
let durationTime = CMTimeGetSeconds(duration)
let minutes = Double(durationTime / 60)
Run Code Online (Sandbox Code Playgroud)
我尝试过持续时间为11:47分钟的视频,然后它返回我= 11:78,视频怎么能有11分78秒呢?
所以我认为问题在于视频,我选择了另一个1:16分钟的视频,并且返回的值再次是1:26(错误10秒)
Dav*_* S. 23
这对我有用:
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)
}
Run Code Online (Sandbox Code Playgroud)