点击下载教程相关资源
Video.js 有一种流体模式,可将播放器的大小保持在特定的宽高比上。
默认情况下,流体模式将使用视频加载后的固有尺寸,但您可以通过 class 或 aspectRatio 选项进行更改。
启用流体模式将禁用填充模式。如果两者都启用,则流体模式优先。
您可以通过以下几种方式启用流体模式:
在播放器元素中添加 vjs-fluid、vjs-16-9 或 vjs-4-3 作为 class。
将 fluid 选项传递给播放器。
调用 player.fluid(true) 方法。
将 aspectRatio(宽高比)选项传递给播放器。
调用 player.aspectRatio('16:9') 方法。
流体模式有五个相关 class:vjs-fluid、vjs-16-9、vjs-4-3、vjs-9-16 和 vjs-1-1。
vjs-fluid 打开一般的流体模式,它会等待视频加载以计算视频的宽高比。
另外,由于 16:9、4:3、9:16 和 1:1 宽高比非常常见,如果您知道自己的视频是 16:9 或 4:3、9:16 或 1:1,我们默认将它们作为类别提供给您使用。
你可以向播放器传递 fluid 选项或调用 player.fluid(true)。这将启用通用流体模式。
var player = videojs('vid1', { fluid: true });
或者
var player = videojs('vid2'); player.fluid(true);
如果您不想使用视频元素的固有值,或者您有特定的比例,可以指定一个宽高比供我们使用。它既可以作为方法调用,也可以作为播放器的一个选项。
该选项由两个整数组成,中间用冒号隔开,如 16:9 或 4:3。
// make a vertical video var player = videojs('vid1', { aspectRatio: '9:16' });
或者
var player = videojs('vid2'); // make a square video player.aspectRatio('1:1');
您可以通过删除相关 class 或在方法中输入 false 来禁用流体模式。
player.fluid(false);
该示例将演示流体模式,当我们改变浏览器大小时,播放器将会自动适应宽度。如下:
<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"> <video id="vid1" data-setup='{"preload":"auto","controls":true,"width":"640","height":"264px", "poster":"../resources/oceans.jpg"}'> <source src="../resources/oceans.mp4" type="video/mp4" /> <source src="../resources/oceans.webm" type="video/webm" /> </video> </div> <!-- 引入 Video.js 库 --> <script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script> <script> let player = videojs('vid1'); player.fluid(true); </script> </body> </html>
运行示例,效果图: