首页 > 解决方案 > ExoPlayer seekto函数不寻找到指定点而是从0开始

问题描述

我正在为 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");
            }
        }
    });

谢谢

标签: exoplayerexoplayer2.xseektotime

解决方案


推荐阅读