新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

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

发布时间:2023-08-21 07:56:59

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

如果每次调用 `mediaPlayer.seekTo()` 方法都到相同的位置,多是由于 `mediaPlayer` 对象没有正确初始化还是在每次调用 `seekTo()` 方法之前没有设置正确的播放位置。
首先,确保在调用 `seekTo()` 方法之前,`mediaPlayer` 对象已正确初始化并且已设置了数据源和准备好进行播放。可以通过以下代码进行初始化和设置数据源:
```java
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("音频文件路径");
mediaPlayer.prepare(); //异步准备,可以在prepareAsync()以后的回调中调用seekTo()
```
另外,确保在每次调用 `seekTo()` 方法之前,已设置了正确的播放位置。可以通过以下代码设置播放位置:
```java
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.seekTo(指定的播放位置);
}
});
```
在 `onPrepared()` 方法中调用 `seekTo()` 方法可以确保在准备好播放后设置正确的播放位置。
如果以上方法依然没法解决问题,多是由于音频文件本身的问题,建议检查音频文件是否是正常,还是尝试使用其他音频文件进行测试。