【问题标题】:With iOS 8.x, Characters are broken in WebVTT for subtitle在 iOS 8.x 中,字符在 WebVTT 中被破坏以获取字幕
【发布时间】:2015-01-22 17:02:41
【问题描述】:

ADDITION :它似乎可以在其他原生应用上正常工作。仅在网络浏览器上中断。 (即 Chrome、移动 Safari)

使用 HLS (=.m3u8) 提供自适应流媒体,并考虑将 WebVTT 用于字幕。但是当我在 Mobile Safari 上播放它们时,我发现除了英语之外的一些字符在 iOS 8.x 设备上碰巧被破坏了。它在 iOS 7 设备上运行良好。

这是由 Apple 托管的官方示例视频 (.m3u8) 网页: https://developer.apple.com/streaming/examples/advanced-stream.html

如果您在 iOS 7.x 和 iOS 8.x 设备上都加载此内容,请选择日文字幕,然后它将在 iOS 8.x 上显示损坏的字符(适用于 7.x 及更低版本):

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

【问题讨论】:

    标签: ios objective-c m3u8 http-live-streaming webvtt


    【解决方案1】:

    自从我发布此消息以来一直没有答案,我仍然为这个问题而苦苦挣扎。但是,我在这里给你我 4 个月的解决方法和琐事:

    • 原生iOS视频播放功能有两种环境:
      HTML5视频 & 原生应用播放SDK(如AVPlayer)

    • 您可以使用 WebVTT 提供多个字幕功能。这是一个ONLY选项,除非您有 3rd 方渲染器或您后院的东西。

    • 如果你想实现自己的字幕功能,你必须开始考虑如何处理视频播放器的控制器 UI。其中一个例子,你不能在你的字幕渲染器中使用内置的全屏功能。我认为,如果您的字幕库不是 WebVTT(或类似于 .VTT 的 .SRT),那么实现字幕渲染器并不是一个坏主意。 (就我而言,我实现了一个字幕转换器来创建 .VTT 字幕文件)

    • iOS HTML5视频花絮:

      • 您可以通过将 WebVTT 嵌入 HLS 播放列表以及将元素放入元素中来提供 WebVTT。
      • >= iOS 8.0,如果您通过将 WebVTT 文件嵌入 HLS 播放列表来提供 WebVTT 文件,那么多字节字符会被破坏。 (这是我的问题,如上所述
      • 如果您通过将元素放入元素来提供 WebVTT 文件,那么它可以在任何地方工作。 (至少 >= iOS 6.0。我没有检查旧版本)
      • CSS 样式有效。这意味着您可以为字幕着色。
    • iOS HTML5视频花絮:

      • 您应该将所有 WebVTT 嵌入 HLS 播放列表以使用 iOS 内置字幕功能。没有其他办法。
      • CSS 样式不起作用。没有文字着色。
      • 多字节字符不会被破坏。和平。

     

    希望你好运,如果你掉进了这个字幕地狱:(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多