• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS获取本地沙盒视频封面图片(含swift实现)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近做了个小应用,有涉及到本地视频播放及列表显示。

其中一个知识点就是获取本地存储视频,用来界面中的封面显示。

记录如下:

//videoURL:本地视频路径    time:用来控制视频播放的时间点图片截取                 
-(UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
  
  AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
  NSParameterAssert(asset);
  AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset];
  assetImageGenerator.appliesPreferredTrackTransform = YES;
  assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;
  
  CGImageRef thumbnailImageRef = NULL;
  CFTimeInterval thumbnailImageTime = time;
  NSError *thumbnailImageGenerationError = nil;
  thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];
  
  if(!thumbnailImageRef)  
      NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);  
  
  UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil;  
  
  return thumbnailImage;  
}
   

  

 

获得的Image直接显示即可。

 

如果想获取网络图片,只要替换NSURL方式即可。

 

[NSURL  URLWithString:@"network url"]

 

.PS:

swift实现:

/// 获取本地video的封面截图
    ///
    /// - Parameter url: <#url description#>
    /// - Returns: <#return value description#>
    func getVideoFengMian(url:String) -> UIImage {
        if url.isEmpty {
            //默认封面图
            return UIImage(named: "screenVideo")!
        }
        let aset = AVURLAsset(url: URL(fileURLWithPath: url), options: nil)
        let assetImg = AVAssetImageGenerator(asset: aset)
        assetImg.appliesPreferredTrackTransform = true
        assetImg.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels
        do{
            let cgimgref = try assetImg.copyCGImage(at: CMTime(seconds: 10, preferredTimescale: 50), actualTime: nil)
            return UIImage(cgImage: cgimgref)           
            
            
        }catch{
            return UIImage(named: "screenVideo")!
        }
        
    }

参数是本地url,可以根据需求自行更改参数等,这里只给个参考。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift-类型属性(类静态属性)和类方法(类静态方法)发布时间:2022-07-13
下一篇:
Swift由十六进制转为RGB的颜色设置发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap