android - 寻找不一致的视频视图
问题描述
我有一个以每秒 60 帧或每秒 30 帧的速度录制的视频。现在我在视频视图中查看该视频。我希望视频在每个跳过按钮点击时逐帧跳过。
问题是 seek to 方法寻找最近的关键帧并移动到该位置。因此,有时当我跳过帧时,它会因此显示不一致的行为。
那么我该如何实现呢?
这是我用来寻找视频视图的代码:
int currentPosition = videoView.getCurrentPosition();
double increment = 1000/60;
currentPosition += Math.round(increment);
if (videoLoader.canSeekForward()) {
videoLoader.seekTo(currentPosition);
}
所以该方法videoView.getCurrentPosition()
有时会返回错误的值。
解决方案
我通过用 ExoPlayer 替换视频视图解决了这个问题。ExoPlayer 有一个名为setSeekParameters
. 只需将该方法与以下参数一起使用:
setSeekParameters(SeekParameters.EXACT)
然后 seekto 方法将寻找精确的帧,而不仅仅是最近的关键帧。
推荐阅读
- angular7 - 如何在 Angular 7 中使用 RESTAPI 在模板中绑定 JSON
- php - 如何根据另一个数组删除我的数组中的重复项
- c# - 有没有办法在 2 个不同的 gridview 中汇总 2 列
- python - 如何使用 drf-yasg 自动生成的招摇页面配置“HTTPS”方案?
- asp.net - dotnet core api 模型绑定不起作用 [frombody]
- swift - 如何通过代码创建带有 FreeForm 的 UIViewController ?不使用故事板
- ansible - ansible playbook 来设置 nginx
- angular - Angular 内置管道 - 参考前一个管道的输入值
- angular - 角。网址更改没有重定向(角度材料)
- sql - 如何对sql查询中的两个结果求和并将结果求和到另一个表中?