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

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

记录如下:

//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: , preferredTimescale: ), actualTime: nil)
return UIImage(cgImage: cgimgref) }catch{
return UIImage(named: "screenVideo")!
} }

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

最新文章

  1. JSON.stringify()和JSON.parse()
  2. Tomcat并发数优化,修改service.xml性能调优 增加最大并发连接数
  3. 构建自己的PHP框架--抽象框架的内容
  4. Java-马士兵设计模式学习笔记-责任链模式-处理数据
  5. 矩阵-DirectX与OpenGL的不同
  6. JasperReport原理解析之(一)
  7. php类的属性
  8. 【HDOJ】4513 吉哥系列故事——完美队形II
  9. 登陆验证AuthorizeAttribute
  10. Python学习—框架篇之初识Django
  11. Tomcat manager页面报403
  12. python中的find、rfind、index、rindex
  13. SaltStack入门到精通第一篇:安装SaltStack
  14. winform截屏
  15. maven 之dependencyManagement 和 pluginManagement
  16. [代码][deque容器练习]打分案例
  17. [leetcode]141. Linked List Cycle判断链表是否有环
  18. 【题解】彩色树 51nod 1868 虚树 树上dp
  19. Leetcode Copy List with Random Pointer(面试题推荐)
  20. 绝对详细!Nginx基本配置、性能优化指南

热门文章

  1. [runtime] initialize方法讲解
  2. [MAC OS ] UserDefaults
  3. C语言:通过指针函数输出二维数组中每个学生的成绩
  4. 数学图形之Breather surface
  5. DB-library 常用函数
  6. 同时启动多个Tomcat服务器
  7. 正则 js截取时间
  8. Thrift 文件的格式及可用的数据类型
  9. Codeforces#86D Powerful array(分块暴力)
  10. 自定义Lisp透明命令