简体   繁体   English

我想从 firebase 存储中检索视频

[英]I want to retrieve videos from firebase storage

I am working on simple firebase app in which I upload user info as registration data and uploading videos in storage.我正在开发简单的 firebase 应用程序,在该应用程序中我将用户信息上传为注册数据并上传存储中的视频。 Path of videos is also stored in realtime database as nested child of every particular user which is working properly, but I don't know how to retrieve video and set in user profile with other user information.视频路径也作为每个特定用户的嵌套子项存储在实时数据库中,这些用户正常工作,但我不知道如何检索视频并在用户配置文件中设置其他用户信息。 I need code to retrieve video from storage.我需要代码来从存储中检索视频。

     case PICK_VIDEO_REQUEST:
            if (resultCode == RESULT_OK) {


                selectedVideoUri = data.getData();
               userUid = FirebaseAuth.getInstance().getCurrentUser().getEmail();
                StorageReference storageRef = FirebaseStorage.getInstance().getReference();
                filename = data.getData().getLastPathSegment();
                tv_file_path.setText(filename);
                videoRef = storageRef.child("/videos/" + userUid + "/" + filename);
                //TODO: save the video in the db


            }
            break;




`//Button upload data in firebase
    btn_upload_notes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            uploadData(selectedVideoUri);


                           try {
                               if (FirebaseAuth.getInstance().getCurrentUser().getEmail().equals(value.getT_email())) {

                                   file_name = filename;
                                   notes_Category = text;
                                   lecture_topic = et_topic.getText().toString().trim();
                                   id = mDatabase.push().getKey();
                                   NotesModelClass notesModelClass = new NotesModelClass(id, notes_Category, lecture_topic, file_name);
                                   mDatabase.child(value.getT_id()).child("Video Notes").child(id).setValue(notesModelClass);
                                   return;
                               }
                           }
                           catch (Exception ex){
                               throw  ex;
                           }

        }
    });

` `

     private void uploadData(Uri videoUri) {
    if (videoUri != null) {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Uploading...");
        progressDialog.show();
        UploadTask uploadTask = videoRef.putFile(videoUri);

        uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                if (task.isSuccessful())
                    progressDialog.dismiss();
                Toast.makeText(MainActivity.this, "Upload Complete", Toast.LENGTH_SHORT).show();

            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot
                        .getTotalByteCount());
                progressDialog.setMessage("Uploaded " + (int) progress + "%");
            }
        });
    } else {
        Toast.makeText(MainActivity.this, "Nothing to upload", Toast.LENGTH_SHORT).show();
    }

}

Try this code试试这个代码

Retrive single video.检索单个视频。

StorageReference videoRef = storageRef.child("/videos/" + userUid + "/" + filename);

final long ONE_MEGABYTE = 1024 * 1024;
videoRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
    @Override
    public void onSuccess(byte[] bytes) {
        // Transform bytes to a video, play
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});

Retrieve multiple video检索多个视频

 StorageTask<UploadTask.TakeSnapshot> storageTask;
        storageTask = yourStorageRefernce.putFile(videoUri);
        storageTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                return yourStorageRefernce.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if (task.isSuccessful()) {
                    Uri downloadUri = task.getResult();
                    arrayList.add(downloadUri.toString());
                }
            }
        });

Help me random video in firebase帮我在 firebase 中随机播放视频

private void loadVideosFromFirebase() {

    videoArrayList=new ArrayList<>();

    DatabaseReference reb = FirebaseDatabase.getInstance().getReference().child("Videos");
    reb.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            for (DataSnapshot ds:dataSnapshot.getChildren()) {
                ModelVideo modelVideo = ds.getValue(ModelVideo.class);
                videoArrayList.add(modelVideo);

            }
            adapterVideo = new AdapterVideo(VideosActivity.this,videoArrayList);
            videosRv.setAdapter(adapterVideo);


        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在应用程序中从Firebase检索视频? - How to Retrieve videos from Firebase in app? Firebase存储上的图像和视频 - Images & Videos on Firebase Storage 我想从Firebase用户数组中检索所有用户的UID并将其存储到Arraylist中 - I want to retrieve all user's UID from Firebase user array and store it into Arraylist 我想从 firebase 检索当前用户的 ID 并将其写入另一个节点,但它一直拒绝 - I want to retrieve a current user's ID from firebase and write it in another node, but it just keeps denying 如何从Firebase Storage检索图像的下载URL? - How to retrieve the download URL of an image from Firebase Storage? 我想在 recyclerview 开始时显示上传到 firebase 存储的最新图像 - i want to display the newest image uploaded to firebase storage at the start of recyclerview 我想检查是否有新文件添加到 firebase 存储中 - I want to check whether a new file is added to firebase storage or not 我想将我的 firebase 数据检索到卡列表中,但没有显示任何内容 - I want to retrieve my firebase data into a card list, but not showing anything 我想计算用户半径并在Android Firebase中检索用户ID - I want to calculate user radius and retrieve the user id in android Firebase Firebase 存储图像检索 RecyclerView - Firebase Storage Image Retrieve RecyclerView
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM