我想知道如何从视频流中获取 UIImage
?
我做了什么 :
首先我运行流:
let player = AVPlayer(url: sourceURL)
player.play()
然后我检查 AVPlayer
中的 asset
是否为空 .
if let asset = player.currentItem?.asset {
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.requestedTimeToleranceBefore = CMTimeMake(1, 15)
imageGenerator.requestedTimeToleranceAfter = CMTimeMake(1, 15)
let time = CMTimeMake(1, 1)
let imageRef = try! imageGenerator.copyCGImage(at: time, actualTime: nil)
return UIImage(cgImage:imageRef)
}
我正在使用 try!
进行测试,我知道我没有处理异常 .
但我收到错误:
错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = {NSUnderlyingError = 0x170654250 ,NSLocalizedFailureReason =发生未知错误(-12782), NSLocalizedDescription =操作无法完成}
我也试试这个answers .
1 回答
我很确定你是否删除
requestedTimeToleranceBefore
和requestedTimeToleranceAfter
你没有问题 . 或者将其属性更改为kCMTimeZero
我还建议添加以下行