Android/Kotlin: webview 自己制作视频字幕叠加在视频上, 如何实现?

2020-10-13 13:38:43 +08:00
 sprinter

请教各位:

播放器可以播放 srt 等字幕, 但显示样式单一, 我需要显示酷炫的字幕, 目前思路如下:

  1. 用 webview/css 做字幕叠加在视频上, webview 只显示字幕背景透明.
  2. 用定时器, 根据播放时间显示相关的字幕.

请问:

  1. webview 能叠加在视频上, 并且显示字幕和透明 webview 背景吗?
  2. 定时器定时播放字幕的话, 用什么定时器能保证时间精确?
  3. 有没有其他方法能用 CSS 编程来自定义酷炫的字幕并显示?

麻烦大家支招!

谢谢!!

1587 次点击
所在节点    程序员
5 条回复
blueaurora
2020-10-13 14:22:50 +08:00
1. webview 能叠加在视频上吧,不过背景透明只显示文字内容的 webview 可没见过..
2. 播放器是本地的,但 webview 的时间是 web 的,所以用 jsbridge 理论上应该能同步时间进度

我的问题是:
1.播放器被 webview 覆盖住了,那播放器的控制,比如进度和暂停按钮怎么处理?

就算基本能跑通,我的怀疑是:
1. webview 和 播放器都属于很重量级的控件,初始化时间很慢,主线程 会不会卡?
2. 我觉得难度很大,会不会有适配问题

webview 和播放器都是底层直接渲染的,说实在的了解底层的话,觉得这样的上层方案还挺浪费的..但是如果只能有这一个方案的话,也只能这样了..
Nuttertoo1s
2020-10-13 14:42:18 +08:00
Android 的同一布局下,后一组件可以覆盖到上一组件上面,webview 我记得是可以设置透明的
Nuttertoo1s
2020-10-13 14:46:52 +08:00
Android 好像是没得设置层级的(反正我没设置过),想谁在最上面,就把组件往后放就行了。比如
<ImageView
android:id="@+id/iv_1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@+id/iv_2"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
这种情况就是 2 盖在 1 上面
unco020511
2020-10-13 14:48:51 +08:00
为什么一定要用 css,你的字幕来源是 css 编程过的?用自定义 view 来覆盖在视频控件上 不是更简单一些吗
cctrv
2020-10-14 08:20:25 +08:00
換 ass 字幕
找一個支持 ass 的播放器就好了。

例如,隨便找的
https://github.com/yuseisako/TangoPlayer

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714483

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX