【发布时间】:2017-08-12 13:39:22
【问题描述】:
我正在尝试获取我选择的视频的缩略图。
它似乎确实创建了缩略图,但在将其上传到 firebase 时崩溃
我相信它会在thumbnailStorageRef 崩溃。
以下是相关代码:
guard let imagePickerUrl = info[UIImagePickerControllerMediaURL] as? URL else { return }
let videoUrl = imagePickerUrl
// Generate image thumbnail.
let asset: AVAsset = AVAsset(url: videoUrl as URL)
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.appliesPreferredTrackTransform = true
var time = asset.duration
time.value = min(time.value, 3)
do {
let thumbnailImage = try imageGenerator.copyCGImage(at: time , actualTime: nil)
let image = UIImage(cgImage: thumbnailImage)
let imageData = UIImagePNGRepresentation(image)!
let thumbnailStorageRef = FIRStorage.storage().reference()
thumbnailStorageRef.child("thumbnails/" + randomString(length: 20) + ".png")
thumbnailStorageRef.put(imageData, metadata: nil, completion: { (thumbnailMeta, error) in
if error != nil {
print("An error has occured while uploading thumbnail:",error ?? "")
} else {
print("Thumbnail upload to database was successfull", thumbnailMeta?.downloadURL() ?? "")
}
})
} catch {
print("An error has occurred while making thumbnail:")
}
当崩溃错误控制台说:
2017-08-11 17:19:08.656 Koala[17914:491998] * 终止应用程序由于 未捕获的异常 'NSInvalidArgumentException',原因:'* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 尝试从 objects[1] 插入 nil 对象' *** 首先抛出调用栈:
我不知道这个错误信息想说什么,也许尝试上传的图像是 nil?我不确定。
【问题讨论】:
-
大胆猜测:你的 imageData 是 nil。
-
我刚刚用 if let 安全地打开包装,它说 imageData 不是 nil
-
@Glenn 图像数据打印“233912 字节”
-
Erik,尝试进一步的调试方法。比如添加断点和异常断点。
标签: ios swift firebase firebase-storage invalid-argument