skip to Main Content

how can I upload a video hosted in firebase to a videoview?

var storageRef = FirebaseStorage.getInstance().reference.child("videos/$recivir.mp4")
val mediaController = MediaController(this)
mediaController.setAnchorView(videoView)

2

Answers


  1. From the official documentation about how to download files with Cloud Storage on Android here https://firebase.google.com/docs/storage/android/download-files#download_files, you can download the media (your video) using getBytes(), getStream(), or getDownloadUrl(), depends on what format you want to use.

    You can use getDownloadUrl() to get the url of the video in Firebase Storage and set the url into the video view.

    storageRef.child("users/me/profile.png").downloadUrl.addOnSuccessListener {
        // Got the download URL for 'users/me/profile.png'
        videoView.setVideoPath(it); // "it" is the url of the video from Firebase Firestore
        videoView.start();
    }.addOnFailureListener {
        // Handle any errors
    }
    
    Login or Signup to reply.
  2. progressDialog.show()

        //timestamp
        val timestamp = ""+System.currentTimeMillis()
    
        //file path and name in firebase storage
        val filePathAndName = "Videos/video_$timestamp"
    
        //storage reference
        val storageReference = FirebaseStorage.getInstance().getReference(filePathAndName)
        //upload video using uri of video to storage
        storageReference.putFile(videoUri!!)
            .addOnSuccessListener { taskSnapshot ->
                 //uploaded,get url of uploaded video
                val uriTask = taskSnapshot.storage.downloadUrl
                while (!uriTask.isSuccessful);
                val downloadUri = uriTask.result
                if (uriTask.isSuccessful){
                    //video url is received successfully
    
                    //now we can add video details to firebase db
                    val hashMap = HashMap<String, Any>()
                    hashMap["id"] = "$timestamp"
                    hashMap["title"] = "$title"
                    hashMap["timestamp"] = "$timestamp"
                    hashMap["videoUri"] = "$downloadUri"
    
                    //put the above info to db
                    val dbReference = FirebaseDatabase.getInstance().getReference("Videos")
                    dbReference.child(timestamp)
                        .setValue(hashMap)
                        .addOnSuccessListener { taskSnapshot ->
                            //video info added successfully
                            progressDialog.dismiss()
                            Toast.makeText(this,"Video Uploaded", Toast.LENGTH_SHORT).show()
                        }
                        .addOnFailureListener { e ->
                            //failed adding video info
                            progressDialog.dismiss()
                            Toast.makeText(this,"${e.message}", Toast.LENGTH_SHORT).show()
    
                        }
                }
    
            }
            .addOnFailureListener { e ->
                //failed uploading
                progressDialog.dismiss()
                Toast.makeText(this,"${e.message}",Toast.LENGTH_SHORT).show()
            }
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search