java - 媒体播放器不播放音频

标签 java android android-mediaplayer

我正在开发一个应用程序,其中包含带有一些音频播放器的 RecyclerView。如果尚未下载,应用程序将下载 .3gp 文件。

当我单击“播放音频”按钮时,未播放音频。

这是我的适配器代码:

        else if(  item.getTipo().equals(AUDIO)){
            MediaPlayer mediaPlayer = new MediaPlayer();
            File folder = new File(Environment.getExternalStorageDirectory() +
                    File.separator    + "Audios");
            File file = new File(folder.getPath() + File.separator
                    +   item.getNomeArquivo());
                FirebaseStorage storage = FirebaseStorage.getInstance();
                StorageReference httpsReference = storage.getReferenceFromUrl(  item.getAudio());
                File localFile = null;
                boolean success = true;
                if (!folder.exists()) {
                    success = folder.mkdirs();
                }
                if (success) {
                    localFile = new File(folder.getPath() + File.separator
                            +   item.getNomeArquivo());
                    File finalLocalFile = localFile;
                    httpsReference.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                        @Override
                                public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                                    Toast.makeText(context,"Baixado",Toast.LENGTH_SHORT);
                                    holder.progressAudio.setVisibility(View.GONE);
                                    holder.playAudio.setVisibility(View.VISIBLE);
                                    holder.playAudio.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {

                                            if(mediaPlayer != null){
                                                String path = Environment.getExternalStorageDirectory() +
                                                        File.separator    + "Audios" + File.separator
                                                        +   item.getNomeArquivo();
                                                Log.i("PATHA",path);
                                                mediaPlayer.create(context,Uri.parse(path));
                                                mediaPlayer.setVolume(50,50);
                                                mediaPlayer.start();
                                            }

                                        }
                                    });
                                }
                            }).addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception exception) {
                                    // Handle any errors
                                    Toast.makeText(context,"Erro ao fazer download",Toast.LENGTH_SHORT);
                                }
                            });
                        } else {
                            Toast.makeText(context, "Erro ao criar arquivo", Toast.LENGTH_SHORT).show();
                        }
        }

我该如何解决这个问题?

最佳答案

尝试替换:

mediaPlayer.create(context,Uri.parse(path));

与:

mediaPlayer.create(context, Uri.fromFile(new File(path)));

关于java - 媒体播放器不播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55885704/

相关文章:

java - 我有一个通用方法,它不会采用我将其参数化为的类型

java - 如何查询在 Parse 中设置为指向其他表的指针的列的值

android - 如何通过从屏幕底部边缘拉动来显示 BottomSheet?

android - 在 ListView 中最右边对齐复选框

android - 如何在使用 ReactNative 最新 AndroidX 版本的 Android 应用程序中使用 Unity 作为库时解决 "libmain.so not found"

android - VideoView 流加载缓冲不足

java - 自定义流媒体实现

android - 有没有办法在 Android API 中播放原始音频/视频流?

java - 在 Safari 中, session 不会在后续的 POST 和 GET 之间保持

java - Spring boot MongoDB Change Streams 不起作用