iOS 8.x版本中,WebVTT字幕中的字符出现了错误。

3
补充:其他原生应用程序似乎可以正确运行,但是在浏览器上(例如 Chrome、Mobile Safari)却无法正常工作。

我们使用HLS(=.m3u8)提供自适应流媒体,并考虑使用WebVTT来提供字幕。但是我发现,在使用Mobile Safari播放时,除了英语以外的某些字符在iOS 8.x设备上会出现损坏。在iOS 7设备上可以正常工作。

以下是苹果官方托管的示例视频(.m3u8)网页链接: https://developer.apple.com/streaming/examples/advanced-stream.html

如果您在iOS 7.x和iOS 8.x设备上都加载此链接,并选择日语字幕,则在iOS 8.x上将显示破损的字符(在7.x及以下版本上可以正常显示):

enter image description here enter image description here

有什么避免的办法吗?我已经在iOS模拟器(7.1、8.1、8.2 beta 4)和iOS设备(8.0.2、8.1.2)上进行了测试。

1个回答

2
自从我发布这个问题以来,一直没有答案,我仍然在为这个问题苦苦挣扎。不过,我在这里提供了我的4个月解决方法和小贴士:
- 本地iOS视频播放功能有两个环境:HTML5视频和本机应用程序播放SDK(例如AVPlayer)。 - 您可以使用WebVTT提供多个字幕功能。除非您拥有第三方渲染器或自己开发的东西,否则这是唯一的选择。 - 如果您想实现自己的字幕功能,必须开始考虑如何处理视频播放器的控制器UI。其中一个例子是,您不能使用内置的全屏功能与您的字幕渲染器。我认为,如果您的字幕基础不是WebVTT(或类似于.VTT的.SRT),那么实现字幕渲染器并不是一个坏主意。(在我的情况下,我实现了一个字幕转换器来创建.VTT字幕文件) - iOS HTML5视频的小贴士: - 您可以通过将WebVTT嵌入到HLS播放列表中,并将其放置在``元素中来提供WebVTT。 - >= iOS 8.0,如果您通过将WebVTT文件嵌入到HLS播放列表中来提供WebVTT文件,则多字节字符会被破坏。(正如上面所述,这是我的问题) - 如果您通过将``元素放置在`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接