我在页面上有一个视频元素,如下所示
<video>
<source src="high-quality.webm"/>
<source src="low-quality.webm"/>
</video>
我无法确保两者high-quality.webm
都low-quality.webm
可用,所以我依靠浏览器检查两者(从第一个开始)并取第一个可以播放的。MDN 文档说
如果
type
未指定属性,则从服务器检索媒体类型并检查浏览器是否可以处理它;如果无法渲染,source
则检查下一个
这适用于所有桌面浏览器。但在移动浏览器上,low-quality.webm
如果high-quality.webm
不存在则不会播放。
Android 开发工具报告如下:
StagefrightMetadataRetriever无法为“my.server.com/path/to/high-quality.webm”创建数据源。
MediaResourceGetter无效的 url:java.lang.RuntimeException:setDataSource 失败:状态 = 0x80000000
如果我交换high-quality.webm
并且low-quality.webm
(我可以确保low-quality.webm
始终可用)没有浏览器会寻找,high-quality.webm
因为他已经找到了可播放的源。
我想避免服务器端检查哪些来源可用。文档听起来像是浏览器会为我完成这项工作。
tl;博士
你能告诉我一种在移动浏览器上high-quality.webm
是否可用的播放方式(因为它可以在桌面上完美运行)?low-quality.webm