带有开始时间的 HTML5 视频播放器在 Internet Explorer 上不起作用
Posted
技术标签:
【中文标题】带有开始时间的 HTML5 视频播放器在 Internet Explorer 上不起作用【英文标题】:HTML5 video player with start time does not work on Internet Explorer 【发布时间】:2014-12-28 18:31:21 【问题描述】:我有下面的代码,视频从 483 秒开始。它适用于大多数浏览器,除了 IE10,它从 0:00 开始。
<video controls preload="metadata">
<source src="http://example.com/myvideo.mp4#t=483" type="video/mp4">
</video>
【问题讨论】:
【参考方案1】:根据这个问题
Setting html5 audio position
为了支持寻找和播放媒体的区域, 尚未下载,Gecko 使用 HTTP 1.1 字节范围请求 从搜索目标位置检索媒体。此外,如果您 不提供 X-Content-Duration 标头,Gecko 使用字节范围请求 寻找媒体的结尾(假设您提供 Content-Length header) 以确定媒体的持续时间。
你可以使用 jQuery
$('video').bind('canplay', function()
this.currentTime = 483;
);
【讨论】:
【参考方案2】:HTML5 视频元素让您开始在网页上使用视频元素。通过添加 javascript,您可以以编程方式创建自定义播放控件、获取和设置当前播放位置以及更改当前视频。您还可以应用执行时间。
您的 HTML 更改:
<video controls preload="metadata" id="Video1">
<source src="http://example.com/myvideo.mp4" type="video/mp4">
</video>
JS代码:
var video = document.getElementById("Video1");
if (video.canPlayType) // tests that we have HTML5 video support
video.addEventListener("canplay", function()
setTime(483); //specified time
, false);
setTime函数:
function setTime(tValue)
// if no video is loaded, this throws an exception
try
if (tValue == 0)
video.currentTime = tValue;
else
video.currentTime += tValue;
catch (err)
// errMessage(err) // show exception
console.log("Video content might not be loaded");
您可以在Using JavaScript to control the HTML5 video player获取更多详细信息
【讨论】:
@Arturo,你的解释好吗?【参考方案3】:'#t' 语法是 W3C 的媒体片段 URI 规范的一部分,可以在 here. 找到 根据this 的文章,IE 不支持这一点,尽管其他主要浏览器支持。因此,在 IE 提供对此规范的支持之前,您必须使用 Javascript 控制播放。
有趣的是,我能够在 Microsoft 的 IE 反馈门户中找到 IE 用户对此问题的反馈。让我分享一下here.
【讨论】:
以上是关于带有开始时间的 HTML5 视频播放器在 Internet Explorer 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有自定义按钮的 HTML5 视频播放器无法在全屏模式下工作
如何使用带有 ID 的单独播放按钮播放多个 HTML5 视频