视频视图寻求不一致
Video view seeking inconsistencies
我有一段以每秒 60 帧或每秒 30 帧的速度录制的视频。现在我在视频视图中查看该视频。我希望视频在每次点击跳过按钮时逐帧跳过。
问题是 seek to 方法查找最近的关键帧并移动到该位置。因此,有时当我跳帧时,它会因此显示不一致的行为。
那么我该如何实现呢?
这是我用来寻找视频视图的代码:
int currentPosition = videoView.getCurrentPosition();
double increment = 1000/60;
currentPosition += Math.round(increment);
if (videoLoader.canSeekForward()) {
videoLoader.seekTo(currentPosition);
}
所以方法 videoView.getCurrentPosition()
有时 returns 错误值。
我通过用 ExoPlayer 替换视频视图解决了这个问题。 ExoPlayer 有一个名为 setSeekParameters
的方法。只需使用带有以下参数的方法:
setSeekParameters(SeekParameters.EXACT)
然后 seekto 方法将寻找精确的帧,而不仅仅是最近的关键帧。
我有一段以每秒 60 帧或每秒 30 帧的速度录制的视频。现在我在视频视图中查看该视频。我希望视频在每次点击跳过按钮时逐帧跳过。
问题是 seek to 方法查找最近的关键帧并移动到该位置。因此,有时当我跳帧时,它会因此显示不一致的行为。
那么我该如何实现呢?
这是我用来寻找视频视图的代码:
int currentPosition = videoView.getCurrentPosition();
double increment = 1000/60;
currentPosition += Math.round(increment);
if (videoLoader.canSeekForward()) {
videoLoader.seekTo(currentPosition);
}
所以方法 videoView.getCurrentPosition()
有时 returns 错误值。
我通过用 ExoPlayer 替换视频视图解决了这个问题。 ExoPlayer 有一个名为 setSeekParameters
的方法。只需使用带有以下参数的方法:
setSeekParameters(SeekParameters.EXACT)
然后 seekto 方法将寻找精确的帧,而不仅仅是最近的关键帧。