我正在为广播流媒体应用程序开发ExoPlayer 2.6.0。无线电正在播放中很好,但是当我尝试在+/- 30秒内添加seekTo时,它总是从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");
}
}
});
谢谢