温馨提示×

mediaPlayer.seekTo(); 每次都到同一位置

小云
155
2023-08-19 14:22:59
栏目: 编程语言

如果每次调用 mediaPlayer.seekTo() 方法都到相同的位置,可能是由于 mediaPlayer 对象没有正确初始化或者在每次调用 seekTo() 方法之前没有设置正确的播放位置。

首先,确保在调用 seekTo() 方法之前,mediaPlayer 对象已经正确初始化并且已经设置了数据源和准备好进行播放。可以通过以下代码进行初始化和设置数据源:

mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("音频文件路径");
mediaPlayer.prepare(); //异步准备,可以在prepareAsync()之后的回调中调用seekTo()

另外,确保在每次调用 seekTo() 方法之前,已经设置了正确的播放位置。可以通过以下代码设置播放位置:

mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.seekTo(指定的播放位置);
}
});

onPrepared() 方法中调用 seekTo() 方法可以确保在准备好播放后设置正确的播放位置。

如果以上方法仍然无法解决问题,可能是由于音频文件本身的问题,建议检查音频文件是否正常,或者尝试使用其他音频文件进行测试。

0