我正在尝试使用 firebase 存储作为后端创建一个语音消息 android 应用程序,但我在成功上传 mp3 文件时遇到问题。
有人可以提供简单的代码来从存储中下载音频文件吗? 我是 android 开发的新手,很抱歉我是菜鸟
我已经在 list 文件中添加了所有权限,如下所示
<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"/>
这是我的上传代码
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();
}
});
}
并用于下载
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) {
}
});
}
最佳答案
确保上传和下载方法的 StorageReference 相同。
//upload
StorageReference filepath = mstorage.child("Audio").child("New_Audio.mp3");
//download
down = mstorage.child("Audio").child("New_Audio.mp3");
要将文件保存到外存中,可以关注this Android Developers guide
一个例子:
try {
File localFile = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "New_Audio.mp3");
localFile .createNewFile();
down.getFile(localFile);
} catch (IOException e) {
e.printStackTrace();
}
关于java - 从 Firebase 存储下载音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39180901/