将音频上传到Firebase后获得下载URL的问题?

时间:2019-09-01 11:21:53

标签: java android firebase firebase-storage

我已经为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

0 个答案:

没有答案