我有一个应用程序,您可以在其中将视频上传到Firebase。我最近遇到的问题是,所有上传到Firebase的视频的长度均为0秒(这是在数据库中的时间,之前在应用程序中是正确的),这当然是错误的。
我尝试过的一些事情:
我注意到的另一件事是,我随视频一起上传的缩略图(即图像)正在作为视频上传。
} else if let vidData = media.videoURL {
print("VIDEO")
let autoIDSto = "media\(media.numMedia).mov"
print(autoIDSto)
let autoID = "media\(media.numMedia)"
let storageRef = Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post:\(postID)").child(autoIDSto)
let postRef = childRef.child("Media")
let uploadData = media.videoURL
let uploadTask = storageRef.putFile(from: vidData, metadata: nil) { (metadata, error) in
print("\(vidData) : Video data")
guard let metadata = metadata else { return }
if let error = error {
print(error)
}
storageRef.downloadURL(completion: { (url, error) in
//a bunch of code to add to DB
if let thumbnailImageData = media.thumbnailImage!.jpegData(compressionQuality: 1.0) {
storageRef.putData(thumbnailImageData, metadata: nil) { (metadata, error) in
storageRef.downloadURL(completion: { (url, error) in
if let thumbnail = url {
mediaRef.updateChildValues(["thumbnail" : "\(thumbnail)"])
出什么问题了,我该如何解决?
答案 0 :(得分:4)
您使用相同的路径(1个扩展名为 mov 的路径)
let storageRef = Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post:\(postID)").child(autoIDSto)
在此处存储视频/图像缩略图
let uploadTask = storageRef.putFile(from: vidData, metadata: nil) { (metadata, error) in
和
storageRef.putData(thumbnailImageData, metadata: nil) { (metadata, error) in
应该有2条不同的路径,其中1条扩展名为 mov ,另一条扩展名为 jpg ,您最终将这两个路径的引用存储在数据库表的1条记录中