如何使用 Firebase 或其他存储将视频上传到我的应用

问题描述

我正在尝试制作一个回忆应用程序,用户可以在其中添加他们希望稍后查看的特定时刻的特定“回忆”。例如,与一个可爱的女孩进行了一次美妙的约会,您想通过将内存添加到应用程序来捕捉这一刻。您可以上传有关当下、日期和其他内容的视频。但是,我不知道如何将此视频上传到 Firebase Storage,然后在我的应用中显示。我看过很多教程,但没有一个适合我的具体情况。 当我想添加照片时,我使用此功能,但视频如何?

var imageURL = ""

private func agregarRecuerdoFirebase() {
        guard let imagenSeleccionada = self.imagen else {
            print("No hay imagen")
            return
        }
        guard let imagenData = imagenSeleccionada.jpegData(compressionQuality: 0.4) else {
            return
        }
        
        let storageRef = Storage.storage().reference(forURL: "gs://chinahub-68043.appspot.com")
        let storageRecuerdos = storageRef.child("recuerdos").child(id)
        
        let Metadata = StorageMetadata()
        Metadata.contentType = "image/png"
        storageRecuerdos.putData(imagenData,Metadata: Metadata) { (storageMetaData,error) in
            if error != nil {
                print(error?.localizedDescription)
                return
            }
            
            storageRecuerdos.downloadURL(completion: { (url,error) in
                if let MetaImageURL = url?.absoluteString {
                    self.imageURL = MetaImageURL
                    print(MetaImageURL)
                    var ref: DocumentReference? = nil
                    ref = self.db.collection("recuerdos").addDocument(data: [
                        
                        "lugar": self.txtLugar.text ?? "","fecha": self.txtFecha.text ?? "","descripcion": self.tvDescripcion.text ?? "","imagen": MetaImageURL
                    
                    ]) { err in
                        if let err = err {
                            print("Error agregando recuerdo: \(err)")
                        } else {
                            print("Recuerdo agregado con ID: \(ref!.documentID)")
                        }
                    }
                }
            })
        }
        self.backToRecuerdos()
    }

然后为了显示图像,我构建了这个扩展并执行了以下代码

extension UIImageView {
    func setimage(from urlAddress: String?) {
        guard let urlAddress = urlAddress,let url = URL(string: urlAddress) else { return }
        let task = URLSession.shared.dataTask(with: url) { data,response,error in
            guard let data = data,error == nil else { return }
            dispatchQueue.main.async {
                self.image = UIImage(data: data)
            }
        }
        task.resume()
    }
}

   cell.lblNumero.text = "Recuerdo #\(row+1)"
    cell.lblFecha.text = fecha
    cell.lblLugar.text = lugar
    cell.imgFoto.setimage(from: imagenURL)
    cell.lblDescripcion.text = descripcion

除了视频,我怎么能做同样的事情?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)