精彩文章iOS Developer

七牛上传视频之后,获取对应秒数的视频截图

2017-08-21  本文已影响51人  Chase_Eleven

项目需求要获取多个视频的第十秒截图

百度了一个方法

// 获取视频第一帧
- (UIImage*) getVideoPreViewImage:(NSURL *)path
{
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:path options:nil];
    AVAssetImageGenerator *assetGen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    
    assetGen.appliesPreferredTrackTransform = YES;
    CMTime time = CMTimeMakeWithSeconds(0.0, 600);
    NSError *error = nil;
    CMTime actualTime;
    CGImageRef image = [assetGen copyCGImageAtTime:time actualTime:&actualTime error:&error];
    UIImage *videoImage = [[UIImage alloc] initWithCGImage:image];
    CGImageRelease(image);
    return videoImage;
}

想当然地把CMTime time = CMTimeMakeWithSeconds(0.0, 600);改成CMTime time = CMTimeMakeWithSeconds(10.0, 600);

发现效率很低
废了很多时间去做优化,开线程,回主线程刷界面,巴拉巴拉

之后查阅了七牛开发文档之后,才发现,七牛给了获取视频截图的接口,
用文件地址 + vframe/jpg/offset/0 就是取 0秒的截图 。 后边0是秒的单位
瞬间XXXXX

[imageView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@?vframe/jpg/offset/10",model.url]]];

这样就OK了!!


小白总结,欢迎打脸指正

上一篇下一篇

猜你喜欢

热点阅读