可以通过 npm 或直接使用 CDN 链接进行安装:
npm install video.js
或在 HTML 中添加 CDN 链接:
<link href="https://vjs.zencdn.net/7.14.3/video-js.css" rel="stylesheet" />
<script src="https://vjs.zencdn.net/7.14.3/video.js"></script>
在 HTML 文件中添加视频元素:
<video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="640" height="360">
<source src="my-video.mp4" type="video/mp4" />
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
在 JavaScript 中初始化播放器:
var player = videojs('my-video', {
autoplay: true,
controls: true,
fluid: true
});
play()
: 播放视频。pause()
: 暂停视频。src(source)
: 更改视频源。on(event, handler)
: 为特定事件添加事件监听器,例如 ended
事件。dispose()
: 销毁播放器实例。结合 React 使用 Video.js:
import React, { useRef, useEffect } from 'react';
import videojs from 'video.js';
import 'video.js/dist/video-js.css';
const VideoPlayer = ({ options, onReady }) => {
const videoRef = useRef(null);
const playerRef = useRef(null);
useEffect(() => {
if (!playerRef.current) {
const videoElement = document.createElement('video-js');
videoRef.current.appendChild(videoElement);
const player = playerRef.current = videojs(videoElement, options, () => {
console.log('player is ready');
onReady && onReady(player);
});
} else {
const player = playerRef.current;
player.autoplay(options.autoplay);
player.src(options.sources);
}
}, [options]);
useEffect(() => {
return () => {
if (playerRef.current) {
playerRef.current.dispose();
playerRef.current = null;
}
};
}, []);
return <div data-vjs-player><div ref={videoRef} /></div>;
};
export default VideoPlayer;