我需要在Swift 3中的设备上本地存储的视频中创建一个缩略图。我有以下代码:
func fetchFirstFrameOf(videoPath urlString: String) -> UIImage? {
let filePath = URL(fileURLWithPath: urlString).absoluteURL
let asset = AVURLAsset(url: filePath, options: nil)
let imgGenerator = AVAssetImageGenerator(asset: asset)
imgGenerator.appliesPreferredTrackTransform = false
do {
let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(0, 1), actualTime: nil)
let thumbnail = UIImage(cgImage: cgImage)
return thumbnail
} catch let error {
print("*** Error generating thumbnail: \(error)")
return nil
}
}
现在,当我拍摄视频并保存时,此功能正常。但是当我稍后重新启动应用程序时,不会显示缩略图并且会抛出以下错误:
***生成缩略图时出错:错误域= NSURLErrorDomain代码= -1100"在此服务器上找不到给定的URL" UserInfo = {NSLocalizedDescription =在此服务器上找不到给定的URL,NSUnderlyingError = 0x170255990 {错误域= NSPOSIXErrorDomain代码= 2"没有这样的文件或目录"}}
我尝试像这样初始化文件路径:URL(字符串:文件路径),但也没有运气。
拍摄视频后即可使用。直到你重新打开应用程序然后再次失败...
答案 0 :(得分:1)
所以我认为问题在于我试图访问一个临时地址(url中的私有和tmp应该会让我失意:s)
结束创建视频并将其移至文档目录。