我想知道如何从视频流中获取UIImage
?
我做了什么:
首先我运行流:
let player = AVPlayer(url: sourceURL)
player.play()
然后我会检查asset
中的AVPlayer
是否为空。
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 {错误 Domain = NSOSStatusErrorDomain Code = -12782“(null)”}, NSLocalizedFailureReason =发生未知错误(-12782), NSLocalizedDescription =无法完成操作}
我也试试answers。
答案 0 :(得分:0)
我很确定你是否删除了
requestedTimeToleranceBefore
和requestedTimeToleranceAfter
您将没有任何问题。或者将其属性更改为kCMTimeZero
我还建议添加以下行
imageGenerator.appliesPreferredTrackTransform = true