当从资产文件夹加载 mp3 时,MediaPlayer getDuration 方法总是 return 0

MediaPlayer getDuration method always return 0 when mp3 loaded from asset folder

我试图从资产文件夹中播放 mp3 文件,但它的 getDuration 方法总是 return 零

        try {
             AssetFileDescriptor afd = getAssets().openFd("music.mp3");
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            afd.close();
            pause.setBackgroundResource(R.drawable.play);
            finalTime = mediaPlayer.getDuration();


        } catch (IOException e) {
            e.printStackTrace();
        }

您的 mediaPlayer 似乎没有准备好,这可以在调用 getDuration.

之前通过 mediaPlayer.prepare(); 调用来完成