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();
有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();