有一个mp3文件,长度为20秒。
但是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();
}
那是什么问题?
我想播放20秒的完整mp3文件。
答案 0 :(得分:1)
我建议您看看这个post
基本上,如果您尝试扩大MediaPlayer作为实例变量的范围,它应该可以工作
(在示例中被声明为静态,您可能不需要将其声明为静态)
只需更改此行:
MediaPlayer mediaPlayer = new MediaPlayer();
在:
private MediaPlayer mediaPlayer //is an instance variable not a local one
在您维护方法时:
mediaPlayer =新的MediaPlayer();