ios – 如何从视频中获取最后一帧?

我想要最后一帧视频,我的代码如下所示:

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)!

但我没有得到最后一帧,我得到第一帧,为我提供解决方案.

解决方法

你可以在Objective-C中获得最后一帧视频,如下所述: –

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:nil];
    AVAssetimageGenerator *generate = [AVAssetimageGenerator assetimageGeneratorWithAsset:asset];
    generate.appliesPreferredTrackTransform = YES;

    NSError *error;

    int64_t lastFrameTime = CMTimeGetSeconds(asset.duration)*60.0;
    CMTime time = CMTimeMake(lastFrameTime,2);
    CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:nil error:&error];
    UIImage *image = [UIImage imageWithCGImage:imgRef];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...