Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想从firebase存储中检索视频_Java_Android_Firebase_Firebase Storage - Fatal编程技术网

Java 我想从firebase存储中检索视频

Java 我想从firebase存储中检索视频,java,android,firebase,firebase-storage,Java,Android,Firebase,Firebase Storage,我正在开发一个简单的firebase应用程序,其中我将用户信息上传为注册数据,并将视频上传到存储器中。视频的路径也存储在实时数据库中,作为每个特定用户的嵌套子对象,该子对象工作正常,但我不知道如何检索视频并在用户配置文件中设置其他用户信息。我需要代码从存储器中检索视频 case PICK_VIDEO_REQUEST: if (resultCode == RESULT_OK) { selectedVideoUri = data.

我正在开发一个简单的firebase应用程序,其中我将用户信息上传为注册数据,并将视频上传到存储器中。视频的路径也存储在实时数据库中,作为每个特定用户的嵌套子对象,该子对象工作正常,但我不知道如何检索视频并在用户配置文件中设置其他用户信息。我需要代码从存储器中检索视频

     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上传数据(Uri videoUri){
if(videoUri!=null){
final ProgressDialog ProgressDialog=新建ProgressDialog(此);
progressDialog.setTitle(“上载…”);
progressDialog.show();
UploadTask UploadTask=videoRef.putFile(videoUri);
uploadTask.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful())
progressDialog.disclose();
Toast.makeText(MainActivity.this,“上传完成”,Toast.LENGTH_SHORT.show();
}
}).addOnProgressListener(新的OnProgressListener(){
@凌驾
public void onProgress(UploadTask.TaskSnapshot TaskSnapshot){
双进度=(100.0*taskSnapshot.GetByTestTransferred()/taskSnapshot
.getTotalByteCount());
progressDialog.setMessage(“上传”+(int)进度+“%”;
}
});
}否则{
Toast.makeText(MainActivity.this,“无需上传”,Toast.LENGTH_SHORT.show();
}
}
试试这段代码

检索单个视频

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
    }
});
StorageReference videoRef=storageRef.child(“/videos/”+userUid+“/”+filename);
最终长1兆字节=1024*1024;
videoRef.getBytes(1兆字节).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共void(字节[]字节){
//将字节转换为视频,播放
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
}
});
检索多个视频

 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());
                }
            }
        });
StorageTask-StorageTask;
storageTask=yourStorageReference.putFile(videoUri);
storageTask.continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
返回您的StorageReference.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Uri downloadUri=task.getResult();
add(downloadUri.toString());
}
}
});
试试这段代码

检索单个视频

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
    }
});
StorageReference videoRef=storageRef.child(“/videos/”+userUid+“/”+filename);
最终长1兆字节=1024*1024;
videoRef.getBytes(1兆字节).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共void(字节[]字节){
//将字节转换为视频,播放
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//处理任何错误
}
});
检索多个视频

 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());
                }
            }
        });
StorageTask-StorageTask;
storageTask=yourStorageReference.putFile(videoUri);
storageTask.continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
返回您的StorageReference.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Uri downloadUri=task.getResult();
add(downloadUri.toString());
}
}
});

帮助我在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) {

        }
    });
}
private void loadVideosFromFirebase(){
videoArrayList=新的ArrayList();
DatabaseReference reb=FirebaseDatabase.getInstance().getReference().child(“视频”);
reb.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
ModelVideo ModelVideo=ds.getValue(ModelVideo.class);
videoArrayList.add(modelVideo);
}
adapterVideo=新的adapterVideo(VideosActivity.this,videoArrayList);
videosRv.setAdapter(adapterVideo);
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
}

帮助我在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) {

        }
    });
}
private void loadVideosFromFirebase(){
videoArrayList=新的ArrayList();
DatabaseReference reb=FirebaseDatabase.getInstance().getReference().child(“视频”);
reb.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
ModelVideo ModelVideo=ds.getValue(ModelVideo.class);
videoArrayList.add(modelVideo);
}
adapterVideo=新的adapterVideo(VideosActivity.this,videoArrayList);
videosRv.setAdapter(adapterVideo);
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
}

Most Welcome^^每个用户文件夹中都有多个视频,我想一次检索所有视频以添加到arraylist中