在我的项目中,我使用 swiper.js 作为幻灯片,每张幻灯片都包含图像或带有 webvtt 字幕/字幕的 html5 视频。在调试时,我们注意到 webkit 浏览器上的字幕位置错误(太低,截屏)。经过多次调试,结果发现父 div(swiper-wrapper)上的这个 css3 规则使 vtt 位置错误:
transform: translate3d(-1024px, 0px, 0px)
当您将视频放在第一张幻灯片中时,一切顺利,因为还没有 css 翻译。
这似乎是一个核心 webkit 问题:在父级上使用 css 翻译时默认 webvtt 定位中断。
我发现的解决方法是在 vtt 本身中为每个字幕元素添加一个行定位,如下所示:
WEBVTT
00:00:02.160 --> 00:00:06.440 line:90%
hello world
00:00:06.560 --> 00:00:11.920 line:90%
testing subtitles
任何没有“line: 90%”部分的句子都会部分呈现在屏幕外。似乎此设置强制 webvtt 解析器/渲染器将自身设置为正确的位置。
问题:有没有人遇到过这个问题,还有其他(更简单的)解决这个错误的方法吗?将“行:”部分添加到所有字幕将是一项艰巨的工作..除非有一个好的编辑器可以批量完成这些工作。
问题 2:由于这似乎是一个 webkit vtt 解析器错误,任何人都知道在哪里最好地报告这个?
在此处进行测试设置:http: //orgonemedia.nl/webvtt-bug/