3

添加:它似乎在其他本机应用程序上正常工作。仅在网络浏览器上损坏。(即 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)上对此进行了测试。

4

1 回答 1

2

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

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

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

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

  • iOS HTML5 视频琐事:

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

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

 

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

于 2015-05-15T00:22:54.070 回答