私が選択したビデオのサムネイルを取得しようとしています。イメージをファイアベースにアップロードするときにスウィフトアプリがクラッシュする
それは、サムネイルを作成しないように思えるが、それは私が信じているthumbnailStorageRef
でクラッシュし
をfirebaseするためにそれをアップロードする際には、クラッシュします。
ここに関連するコードです:エラーコンソールをクラッシュすると言うとき
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年8月11日17:19:08.656コアラ[17914:491998] *が原因のアプリを終了〜 未知の例外 'NSInvalidArgumentException'、理由: '* - [__ NSPlaceholderDictionary initWithObjects:forKeys:count:]:オブジェクト[1]からオブジェクトを挿入しようとしました' ***最初にコールstac k:
このエラーメッセージの内容はわかりません。アップロードしようとしている画像がnilである可能性はありますか?よく分かりません。
ワイルド推測:あなたの画像データはnilです。 – Glenn
私はちょうどletを使って安全にアンラップし、imageDataがnilではないことを示しています –
@Glenn画像データが "233912 bytes" –