代码之家  ›  专栏  ›  技术社区  ›  nick.tdr

视频视图查找不一致

  •  0
  • nick.tdr  · 技术社区  · 7 年前

    我有一个每秒60帧或每秒30帧的视频。现在我在视频视图中查看该视频。我希望视频在每次点击“跳过”按钮时逐帧跳过。

    问题是,Seek-To方法查找最近的关键帧并移动到该位置。所以有时候当我跳过帧时,它会显示出不一致的行为。

    那么我怎样才能做到呢?

    这是我用来搜索视频视图的代码:

        int currentPosition = videoView.getCurrentPosition();
    
        double increment = 1000/60;
    
        currentPosition += Math.round(increment);
    
        if (videoLoader.canSeekForward()) {
               videoLoader.seekTo(currentPosition);
        }            
    

    所以该方法 videoView.getCurrentPosition() 有时返回错误的值。

    1 回复  |  直到 7 年前
        1
  •  0
  •   nick.tdr    7 年前

    我通过用exoplayer替换视频视图解决了这个问题。exoplayer有一个方法 setSeekParameters . 只需将该方法与以下参数一起使用:

    setSeekParameters(SeekParameters.EXACT)
    

    然后Seekto方法将寻求精确的帧,而不仅仅是最近的关键帧。