我有一个视频,它以每秒60帧或每秒30帧的速度录制。现在,我在视频视图中观看该视频。我希望视频在每次跳过按钮点击时逐帧跳过。
问题是seek方法寻找最近的关键帧并移动到该位置。因此,有时当我跳过帧时,由于这种情况,它表现出不一致的行为。
那我该如何实现呢?
这是我用来搜索视频的代码:
int currentPosition = videoView.getCurrentPosition();
double increment = 1000/60;
currentPosition += Math.round(increment);
if (videoLoader.canSeekForward()) {
videoLoader.seekTo(currentPosition);
}
因此,方法videoView.getCurrentPosition()
有时返回错误的值。
答案 0 :(得分:0)
我通过用ExoPlayer替换视频视图解决了这个问题。 ExoPlayer有一个称为setSeekParameters
的方法。只需使用带有以下参数的方法即可:
setSeekParameters(SeekParameters.EXACT)
然后seekto方法将搜索精确的帧,而不仅仅是最近的关键帧。