видео, загруженные в FireBase, имеют длительность 0 секунд? - PullRequest
1 голос
/ 05 мая 2019

У меня есть приложение, где вы можете загружать видео в 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 Ответ

4 голосов
/ 05 мая 2019

Вы используете тот же путь (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 записи в таблице базы данных

...