我已经为android应用程序编写了代码,该代码应将录制的音频上传到Firebase存储并获取下载URL,并将其另存为Firebase实时数据库中的String值。 一切正常,但在Chrome浏览器中打开下载网址后,播放音频时遇到了一个小问题。该问题仅在android命令下出现,但在IOS上一切正常。从android设备发送的音频URL应该下载到用户设备,以允许用户播放它(图1)。 在从IOS设备发送的音频URL上,您可以在浏览器上播放音频而不会出现任何问题()图2。
StorageMetadata metadata = new StorageMetadata.Builder()
.setContentType("audio/mp4")
.build();
final StorageReference storageReference=mStorage.child(orders_id).child("recording"+recording_num +".m4a");
Uri uri = Uri.fromFile(new File(fileName));
final UploadTask uploadTask = storageReference.putFile(uri,metadata);
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(MainActivity.this,"Upload failed !!"+exception,Toast.LENGTH_LONG).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(MainActivity.this,"audio uploded", Toast.LENGTH_SHORT).show();
recording_num=recording_num++;
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String s_url_voice=uri.toString();
order.setS_url_voice(s_url_voice);
packOrders(order);
}
});
}
});
(1张Android图片)https://ibb.co/9tx3C2s (2 ios)https://ibb.co/BPgXfsP