Android MediaPlayer仅播放2-3秒,不是完整的mp3

Android MediaPlayer仅播放2-3秒,不是完整的mp3,android,android-mediaplayer,Android,Android Mediaplayer,有一个20秒长的mp3文件 但是MediaPlayer只能播放2-3秒 我用下面的代码从原始文件播放mp3 try{ AssetFileDescriptor afd = getApplicationContext().getResources().openRawResourceFd(R.raw.buzzer6); MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnPrepar

有一个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();
}
那么问题是什么呢

我想播放完整的mp3文件,这是20秒


我建议你看看这个

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

(在示例中,声明为静态,您可能不需要将其声明为静态)

只需更改这一行:

在:

在使用您维护的方法时:

mediaPlayer=新的mediaPlayer()

MediaPlayer mediaPlayer = new MediaPlayer();
private MediaPlayer mediaPlayer //is an instance variable not a local one