如何强制 html5 嵌入视频完成播放?

Posted

技术标签:

【中文标题】如何强制 html5 嵌入视频完成播放?【英文标题】:How do I force an html5 embedded video to finish playing? 【发布时间】:2015-08-16 18:52:37 【问题描述】:

一些背景知识:这实际上是 Articulate Presenter '13 课程中的一个 Web 对象,加载到 Mooodle LMS 的一个实例中。

'web object'只是我写的一个html文件,其相关部分是这样写的:

<video   controls src="http://download.atsmedia.com/LMS/PGE/COUB-Sale.mp4" type="video/mp4">
<p>If you are reading this, it is because your browser does not support the HTML5 video element.</p>
</video>

我一直在避免使用 javascript,因为我想让一切都尽可能地跨平台和跨浏览器友好。所以我正在寻找最简单的解决方案。如果有人有与 Articulate Presenter '13(甚至 Moodle)相关的其他信息,我会全力以赴 - 目标是在学习者进入下一张幻灯片之前强制视频完成。

【问题讨论】:

【参考方案1】:

目标是强制视频在学习者前进到下一张幻灯片之前完成。

在这种情况下不使用 JavaScript 就像期待披萨送达却没有订购一样(而且 JavaScript 确实不是跨平台问题)。

视频元素可以告诉浏览器环境它已经完成(不包括视觉/UI)的唯一方法是为ended 广播事件。要获取此事件,您需要 JavaScript。

在结束的事件中,您可以启用下一步按钮或类似的东西:

示例

下面的视频将跳到 8:04 分钟(在支持媒体片段的浏览器中 - 因此您不需要跳到结尾,不是必需的),当视频结束时,其上方名为 NEXT 的按钮将是启用 -

document.querySelector("video").addEventListener("ended", function() 
  // enable NEXT button when video finished:
  document.querySelector("button").disabled = false;
)
body background:#999
button:disabled color:#ccc
<button disabled=true>NEXT</button><br>
<video autoplay   controls src="http://download.atsmedia.com/LMS/PGE/COUB-Sale.mp4#t=484" type="video/mp4">
</video>

【讨论】:

非常感谢您的帮助。这对我来说是很好的信息。

以上是关于如何强制 html5 嵌入视频完成播放?的主要内容,如果未能解决你的问题,请参考以下文章

强制 YouTube 播放列表为 HTML5 播放

强制 HTML5 youtube 视频

如何强制 html5 视频完全加载?

强制 Vimeo HTML5 视频嵌入

如何在 tableview 中获取 youtube 嵌入视频并在处理“完成”按钮时遇到问题

强制取消静音 HTML5 视频自动播放