user6043117
user6043117

Reputation:

Send video from gallery to Firebase server

I am able to attach an image from gallery and send it to firebase. But I want to upload video from gallery to firebase. I have read documents for firebase but I could not find anything.

So has anyone done this before? Advanced help would be appreciated !

Code:

Here while select video from gallery and on activity result

if (resultCode == RESULT_OK) {
            Uri selectedVideoUri = data.getData();
            StorageMetadata metadata = new StorageMetadata.Builder()
                    .setContentType("video/mpeg")
                    .build();
            if (selectedVideoUri == null) {
                Log.e("selected video path", "null");
                finish();
            } else {
                Log.v("selectedVideoPath", selectedVideoUri.toString());
                if (selectedVideoUri != null) {
                    StorageReference videoGalleryRef = storageRefVideo.child(selectedVideoUri + "_video");
                    sendFileFirebaseVideo(videoGalleryRef, selectedVideoUri, metadata);
                }
            }
        }

 private void sendFileFirebaseVideo(StorageReference storageReference, final Uri file, final StorageMetadata metadata) {
    if (storageReference != null) {
        final String name = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString();
        StorageReference videoGalleryRef = storageReference.child(name + "_video");
        UploadTask uploadTask = videoGalleryRef.putFile(file, metadata);
        uploadTask.addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "onFailure sendFileFirebase " + e.getMessage());
            }
        }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Log.i(TAG, "onSuccess sendFileFirebase");
                Uri downloadUrl = taskSnapshot.getDownloadUrl();
                FileModel fileModel = new FileModel("video", downloadUrl.toString(), name, "");
                ChatModel chatModel = new ChatModel(userModel, "", Calendar.getInstance().getTime().getTime() + "", fileModel);
                mFirebaseDatabaseReference.child(CHAT_REFERENCE).push().setValue(chatModel);
            }
        });
    } else {
    }

}

Upvotes: 2

Views: 3695

Answers (1)

Rajesh Satvara
Rajesh Satvara

Reputation: 3954

// Create instance of StorageReference
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
final StorageReference photoRef = storageRef.child("FolderToCreate").child("NameYoWantToAdd");
// add File/URI
photoRef.putFile(Uri.fromFile(filename))
        .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // Upload succeeded
                Toast.makeText(getApplicationContext(), "Upload Success...", Toast.LENGTH_SHORT).show();

            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
              // Upload failed
                Toast.makeText(getApplicationContext(), "Upload failed...", Toast.LENGTH_SHORT).show();
            }
        }).addOnProgressListener(
        new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                //calculating progress percentage
                double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();

                //displaying percentage in progress dialog
                progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");
            }
        });

Upvotes: 2

Related Questions