Android Firebase:视频存储
谷歌的Firebase支持视频存储吗?我计划上传视频,想按需下载。我从Firebase开始。是否有其他API或服务提供类似的功能?Firebase提供了一种允许您存储任意文件的产品 它不提供任何特定于视频的特性或功能,但如果您只想有一个存储和检索视频文件的地方,它就可以工作。Firebase提供了一个允许您存储任意文件的功能Android Firebase:视频存储,android,video,firebase,video-streaming,Android,Video,Firebase,Video Streaming,谷歌的Firebase支持视频存储吗?我计划上传视频,想按需下载。我从Firebase开始。是否有其他API或服务提供类似的功能?Firebase提供了一种允许您存储任意文件的产品 它不提供任何特定于视频的特性或功能,但如果您只想有一个存储和检索视频文件的地方,它就可以工作。Firebase提供了一个允许您存储任意文件的功能 它不提供任何特定于视频的特性或功能,但如果您只想有一个存储和检索视频文件的地方,它就可以工作。当然,您可以在firebase上上载视频或任何文件 btnupload.set
它不提供任何特定于视频的特性或功能,但如果您只想有一个存储和检索视频文件的地方,它就可以工作。当然,您可以在firebase上上载视频或任何文件
btnupload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT);
myIntent.setType("*/*");
startActivityForResult(Intent.createChooser(myIntent,"Select File:-"),101);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==RESULT_CANCELED)
{
// action cancelled
}
if(resultCode==RESULT_OK)
{
// Create a storage reference from our app
StorageReference storageRef = storage.getReferenceFromUrl("gs://<<Your App Bucket Address>>");
Uri uri = data.getData();
StorageReference riversRef = storageRef.child("files/"+uri.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(uri);
// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
Toast.makeText(MainActivity.this, "Upload Failed", Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Toast.makeText(MainActivity.this, "Upload Success", Toast.LENGTH_SHORT).show();
}
});
}
}
当然,你可以上传视频或firebase上的任何文件
btnupload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT);
myIntent.setType("*/*");
startActivityForResult(Intent.createChooser(myIntent,"Select File:-"),101);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==RESULT_CANCELED)
{
// action cancelled
}
if(resultCode==RESULT_OK)
{
// Create a storage reference from our app
StorageReference storageRef = storage.getReferenceFromUrl("gs://<<Your App Bucket Address>>");
Uri uri = data.getData();
StorageReference riversRef = storageRef.child("files/"+uri.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(uri);
// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
Toast.makeText(MainActivity.this, "Upload Failed", Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Toast.makeText(MainActivity.this, "Upload Success", Toast.LENGTH_SHORT).show();
}
});
}
}