上传到Firebase的视频长0秒?

时间:2019-05-04 21:20:56

标签: ios swift firebase firebase-storage

我有一个应用程序,您可以在其中将视频上传到Firebase。我最近遇到的问题是,所有上传到Firebase的视频的长度均为0秒(这是在数据库中的时间,之前在应用程序中是正确的),这当然是错误的。

我尝试过的一些事情:

  • 我检查了我的上传方式,其中还包括下面的内容,看来是正确的。
  • 缩略图的类型为UIImage
  • 在发送视频之前(在我的应用内预览中),视频看起来很完美。

我注意到的另一件事是,我随视频一起上传的缩略图(即图像)正在作为视频上传。

        } 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)"])

出什么问题了,我该如何解决?

1 个答案:

答案 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条记录中