点击下载教程相关资源
不建议尝试切换 Video.js 播放器的可见性或显示。相反,应根据需要创建和删除( disposed)播放器。
这与在模态/叠加中显示播放器等用例有关。与在 DOM 元素中保留隐藏的 Video.js 播放器相比,建议在打开模态时创建播放器,并在关闭模态时将其删除( disposed)。
注意:在涉及内存/资源使用时(如移动设备),这一点尤为重要。
根据所使用的库/框架,实现方式可能如下:
modal.on('show', function() {
var videoEl = modal.findEl('video');
modal.player = videojs(videoEl);
});
modal.on('hide', function() {
modal.player.dispose();
});完整示例:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Video.js</title>
<!-- 引入 Video.js 样式 -->
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />
<!-- 如果您想支持 IE8(适用于 v7 之前的 Video.js 版本) -->
<!-- <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> -->
</head>
<body>
<div id="container">
<!-- 放置播放器 -->
</div>
<p>
<button onclick="show()">显示</button>
<button onclick="hide()">隐藏</button>
</p>
<!-- 引入 Video.js 库 -->
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
<script>
let player = undefined;
// 显示
function show() {
document.getElementById("container").innerHTML =
"<video id=\"vid1\" class=\"video-js\">\n" +
" <source src=\"../resources/oceans.mp4\" type=\"video/mp4\" />\n" +
" <source src=\"../resources/oceans.webm\" type=\"video/webm\" />\n" +
"</video>";
player = videojs('vid1', {
preload: "auto",
controls: true,
width: "640",
height: "264px",
poster: "../resources/oceans.jpg"
});
player.play();
}
// 隐藏
function hide() {
if(!!player) {
// 同时从 DOM 和内存中移除 Video.js 播放器
player.dispose();
}
}
</script>
</body>
</html>运行示例,效果图:
