【问题标题】:html5 video source not skipped in mobile browsers移动浏览器中未跳过 html5 视频源
【发布时间】:2013-08-02 01:31:54
【问题描述】:

我的页面上有一个视频元素,如下所示

<video>
  <source src="high-quality.webm"/>
  <source src="low-quality.webm"/>
</video>

我无法确保high-quality.webmlow-quality.webm 都可用,所以我依靠浏览器检查两者(从第一个开始)并取第一个可以播放的。 MDN documentation

如果未指定type 属性,则从服务器检索媒体类型并检查浏览器是否可以处理它;如果无法渲染,则检查下一个source

这适用于所有桌面浏览器。但是在移动浏览器上,如果high-quality.webm 不存在,则不会播放low-quality.webm

Android 开发工具报告如下:

StagefrightMetadataRetriever无法为“my.server.com/path/to/high-quality.webm”创建数据源。

MediaResourceGetter 无效的 url:java.lang.RuntimeException:setDataSource 失败:status = 0x80000000

如果我交换high-quality.webmlow-quality.webm(我可以确保low-quality.webm 始终可用)没有浏览器会寻找high-quality.webm,因为他已经找到了可播放的源。

我想避免服务器端检查哪些资源可用。文档听起来像是浏览器可以为我完成这项工作。

tl;dr

你能告诉我在移动浏览器上播放high-quality.webm(如果可用)和low-quality.webm(如果不是)的方法吗(因为它在桌面上完美运行)?

【问题讨论】:

  • 您能否详细说明您所说的不可用是什么意思?你是说404?为什么它只在某些时候可用?
  • 我描述的视频元素是我们用于具有不同文件夹的数千个不同视频的模板的一部分,但都以这个方案命名(像 abcdefgh 这样的 uuid 被转换为文件夹 @987654336 @)。有些资源是高质量的,所以我们将它们命名为high-quality.webm,并使用ffmpeg 创建一个low-quality.webm。 som 资源没有,所以我们无法提供高质量的版本,并且该文件夹只包含一个low-quality.webm。 (在我看来,最好将视频命名为唯一的,而不是它们的路径,但触摸我们的整个文件夹结构太昂贵了)。

标签: html html5-video mobile-safari


【解决方案1】:

使用新版 Chrome 移动版不再有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2013-02-19
    • 2017-05-08
    • 2021-04-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多