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