我想要视频的最后一帧,我的代码如下所示:
let asset : AVURLAsset = AVURLAsset(URL: videoURL, options: nil)
let generate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
generate.appliesPreferredTrackTransform = true
var err : NSError? = nil
var lastFrameTime = Int64(CMTimeGetSeconds(asset.duration))
let time : CMTime = CMTimeMake(lastFrameTime, 30)
let imgRef : CGImageRef = generate.copyCGImageAtTime(time, actualTime: nil, error: &err)
let img : UIImage = UIImage(CGImage: imgRef)!
Run Code Online (Sandbox Code Playgroud)
但我没有得到最后一帧,我得到了第一帧,请为我提供解决方案。
我已经解决了这个问题,为了仅从视频中获取最后一帧,代码如下:
let asset : AVURLAsset = AVURLAsset(URL: videoURL, options: nil)
let generate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
generate.appliesPreferredTrackTransform = true
var err : NSError? = nil
var lastFrameTime = Int64(CMTimeGetSeconds(asset.duration)*60.0)
let time : CMTime = CMTimeMake(lastFrameTime, 2)
let imgRef : CGImageRef = generate.copyCGImageAtTime(time, actualTime: nil, error: &err)
let img : UIImage = UIImage(CGImage: imgRef)!
Run Code Online (Sandbox Code Playgroud)
这就是我在 img 变量中获取视频的最后一个图像的方法。
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |