问题描述
我正试图每秒从imagePickerController
获得10帧视频。我使用此功能,但是从0.1s-> 1s的图像是相同的,从1.1到2s也是如此。反正有事吗?这是我的功能:
func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
picker.dismiss(animated: true)
let videoURL = info[UIImagePickerController.InfoKey.mediaURL] as! URL
getAllFrames(videoURL)
}
var frames:[UIImage] = []
private var generator:AVAssetImageGenerator!
func getAllFrames(_ videoUrl: URL) {
let asset:AVAsset = AVAsset(url: videoUrl)
let duration:Double = CMTimeGetSeconds(asset.duration)
self.generator = AVAssetImageGenerator(asset:asset)
self.generator.appliesPreferredTrackTransform = true
var i: Double = 0
repeat {
self.getFrame(fromTime: i)
i = i + 0.1
} while (i < duration)
self.generator = nil
}
private func getFrame(fromTime:Double) {
let time:CMTime = CMTimeMakeWithSeconds(fromTime,preferredTimescale: 600)
let image:CGImage
do {
try image = self.generator.copyCGImage(at:time,actualTime:nil)
} catch {
return
}
self.frames.append(UIImage(cgImage:image))
}
还是我需要提高视频质量?感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)