ios开发之Swift获取视频截图(本地视频、网络视频的缩略图)
来源:互联网 发布:万达网络科技集团 编辑:程序博客网 时间:2024/05/18 02:42
有时我们需要在界面上显示视频的缩略图,这样用户不用点开也能大概了解到视频的内容。下面分别演示如何获取本地视频,以及网络在线视频的视频截图。
样例的效果图如下,将获取到的截图(视频开始部分)显示在 imageView 中。
1,获取本地视频截图
import UIKit
import AVFoundation
import MobileCoreServices
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
//获取本地视频
let filePath = NSBundle.mainBundle().pathForResource("hangge", ofType: "m4v")
let videoURL = NSURL(fileURLWithPath: filePath!)
let avAsset = AVAsset(URL: videoURL)
//生成视频截图
let generator = AVAssetImageGenerator(asset: avAsset)
generator.appliesPreferredTrackTransform = true
let time = CMTimeMakeWithSeconds(0.0,600)
var actualTime:CMTime = CMTimeMake(0,0)
let imageRef:CGImageRef = try! generator.copyCGImageAtTime(time, actualTime: &actualTime)
let frameImg = UIImage(CGImage: imageRef)
//显示截图
self.imageView.image = frameImg
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
2,获取网络视频截图
由于网络请求比较耗时,所以我们把获取在线视频的相关代码写在异步线程里。
import UIKit
import AVFoundation
import MobileCoreServices
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
//异步获取网络视频
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), {
//获取网络视频
let url = "http://www.hangge.com/hangge.mp4"
let videoURL = NSURL(string: url)!
let avAsset = AVURLAsset(URL: videoURL)
//生成视频截图
let generator = AVAssetImageGenerator(asset: avAsset)
generator.appliesPreferredTrackTransform = true
let time = CMTimeMakeWithSeconds(0.0,600)
var actualTime:CMTime = CMTimeMake(0,0)
let imageRef:CGImageRef = try! generator.copyCGImageAtTime(time, actualTime: &actualTime)
let frameImg = UIImage(CGImage: imageRef)
//在主线程中显示截图
dispatch_async(dispatch_get_main_queue(), {
self.imageView.image = frameImg
})
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
- ios开发之Swift获取视频截图(本地视频、网络视频的缩略图)(转)
- ios开发之Swift获取视频截图(本地视频、网络视频的缩略图)
- Swift - 获取视频截图(本地视频、网络视频的缩略图)
- 如何获取本地,网络视频的缩略图
- ios获取本地视频缩略图
- [iOS] 获取本地视频缩略图
- iOS 获取本地视频的缩略图
- iOS 获取本地视频的缩略图
- 获取视频的第一帧缩略图(本地视频、网络视频)
- Android 获取视频(本地和网络)缩略图的解决方案
- iOS获取本地视频和网络URL视频的缩略图方法
- iOS获取本地视频和网络URL视频的缩略图方法
- iOS开发:获取视频缩略图
- 获取本地视频缩略图
- iOS获取视频的缩略图
- 获取网络视频缩略图
- IOS获取视频缩略图
- iOS-获取视频缩略图
- Go flag包示例
- 关于SSM的配置文件和Web.xml的配置
- jstorm开发+运维经验总结
- fragment监听onBackPressed返回键
- ARM Compute Library
- ios开发之Swift获取视频截图(本地视频、网络视频的缩略图)
- 使用MyBatis+MySQL插入记录后返回该记录主键ID
- mongo(3)
- 省市区三级联动实现1
- js保留小数点后面两位
- 机器学习/数据挖掘之中国大牛
- php 按照回车拆分字符串注意事项
- Python 时间戳
- Matlab的.m文件转C语言或C++