我正在为 Radio 流媒体应用程序开发 ExoPlayer 2.6.0。收音机正在播放很好,但是当我尝试添加 seekTo +/- 30 秒时,它总是从 0 开始流式传输。在调试模式下,播放器搜索到 +30 秒,但一旦设置 setPlayWhenReady() 它就会返回从0开始。我一直在寻找这个解决方案已经很长时间了,所以决定在这里问。任何帮助将不胜感激。
以下是我用于 seekto 操作的代码。
ivForward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (exoPlayer != null && Constants.isMediaPlaying) {
exoPlayer.setPlayWhenReady(false);
Constants.isMediaPlaying = false;
long bufferPosition = exoPlayer.getBufferedPosition();
long currentPosition = exoPlayer.getCurrentPosition();
if ((currentPosition + 30000) < bufferPosition + 50) {
exoPlayer.setPlayWhenReady(false);
Constants.isMediaPlaying = false;
exoPlayer.seekTo(exoPlayer.getCurrentWindowIndex(), currentPosition + 30000);
exoPlayer.setPlayWhenReady(true);
Constants.isMediaPlaying = true;
}
}
} catch (Exception e) {
MakeToast.show("Error moving forward");
}
}
});
谢谢