[英]Download audio from Firebase storage
I'm trying to create a voice messaging android app using firebase storage as backend, but i'm having issue while downloading mp3 file while it uploads successfully. 我正在尝试使用Firebase存储作为后端创建语音消息传递android应用,但是在成功上传mp3文件时却遇到了问题。
Can somebody please provide simple code just to download an audio file from storage. 有人可以提供简单的代码来从存储中下载音频文件吗? I'm new at android development , so sorry for being noob
我是android开发的新手,非常抱歉
i've added all the permissions in my manifest file like bellow 我已经在清单文件中添加了所有权限,例如波纹管
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Tis is my uploading code 这是我的上传代码
private void uploadAudio() {
pd=new ProgressDialog(this);
pd.setMessage("Uploading");
pd.show();
StorageReference filepath = mstorage.child("Audio").child("New_Audio");
Uri uri = Uri.fromFile(new File(mFileName));
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
pd.dismiss();
}
});
}
And for downloading 并下载
private void startdownload() {
down = mstorage.child("Audio/");
File localFile = null;
try {
localFile = File.createTempFile("Audio", "mp3");
} catch (IOException e) {
e.printStackTrace();
}
down.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(getApplicationContext(),"Downloded",Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
}
});
}
Make sure your StorageReference for the upload and download method is the same. 确保用于上传和下载方法的StorageReference相同。
//upload
StorageReference filepath = mstorage.child("Audio").child("New_Audio.mp3");
//download
down = mstorage.child("Audio").child("New_Audio.mp3");
To save the file in the external storage, you can follow this Android Developers guide 要将文件保存在外部存储中,您可以按照此Android开发者指南进行操作
An example: 一个例子:
try {
File localFile = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "New_Audio.mp3");
localFile .createNewFile();
down.getFile(localFile);
} catch (IOException e) {
e.printStackTrace();
}
For Downloading use : 供下载使用:
down = mstorage.child("Audio").child("New_Audio.mp3");
Once the file is downloaded you can check the file path by 下载文件后,您可以通过以下方式检查文件路径:
localFile.getAbsolutePath();
Make a Toast of it, Like this : 像这样烤面包:
Toast.makeText(getApplicationContext(), localFile.getAbsolutePath(),Toast.LENGTH_SHORT).show();
I hope You got my point :) 我希望你明白我的意思:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.