V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sprinter
V2EX  ›  程序员

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

  •  
  •   sprinter · 48 天前 · 604 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教各位:

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

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

    请问:

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

    麻烦大家支招!

    谢谢!!

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

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

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

    webview 和播放器都是底层直接渲染的,说实在的了解底层的话,觉得这样的上层方案还挺浪费的..但是如果只能有这一个方案的话,也只能这样了..
    Nuttertoo1s
        2
    Nuttertoo1s   48 天前
    Android 的同一布局下,后一组件可以覆盖到上一组件上面,webview 我记得是可以设置透明的
    Nuttertoo1s
        3
    Nuttertoo1s   48 天前
    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
        4
    unco020511   48 天前
    为什么一定要用 css,你的字幕来源是 css 编程过的?用自定义 view 来覆盖在视频控件上 不是更简单一些吗
    cctrv
        5
    cctrv   47 天前 via iPhone
    換 ass 字幕
    找一個支持 ass 的播放器就好了。

    例如,隨便找的
    https://github.com/yuseisako/TangoPlayer
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1140 人在线   最高记录 5268   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    ♥ Do have faith in what you're doing.