MediaPlayer 只播放 2-3 秒而不是完整的 mp3

MediaPlayer plays only 2-3 seconds not full mp3

有20秒长的mp3文件。

但是MediaPlayer只播放了2-3秒。

我正在使用以下代码从原始文件播放 mp3。

try{
        AssetFileDescriptor afd = getApplicationContext().getResources().openRawResourceFd(R.raw.buzzer6);
        MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
                @Override
                public void onPrepared(MediaPlayer mp){
                      mp.start();
                }
        });
        mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        afd.close();
        mediaPlayer.prepare();
} catch (IOException ioe) {
        ioe.printStackTrace();
}

那么问题是什么?

I want to Play full mp3 file which is 20 seconds.

我建议你看看这个post

基本上,如果您尝试将 MediaPlayer 的范围扩大为实例变量,它应该可以工作

(例子中声明为static,你可能不需要声明为static)

只需更改此行:

MediaPlayer mediaPlayer = new MediaPlayer();

在:

private MediaPlayer mediaPlayer //is an instance variable not a local one

同时进入你维护的方法:

mediaPlayer = new MediaPlayer();