mirror of
https://github.com/videojs/video.js.git
synced 2024-12-14 11:23:30 +02:00
7ab52d1a59
Fix #3995
56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# video.js and ReactJS integration
|
|
|
|
Here's a basic ReactJS player implementation.
|
|
|
|
It just instantiates the video.js player on `componentDidMount` and destroys it on `componentWillUnmount`.
|
|
|
|
```jsx
|
|
import React from 'react';
|
|
import videojs from 'video.js'
|
|
|
|
export default class VideoPlayer extends React.Component {
|
|
componentDidMount() {
|
|
// instantiate video.js
|
|
this.player = videojs(this.videoNode, this.props, function onPlayerReady() {
|
|
console.log('onPlayerReady', this)
|
|
});
|
|
}
|
|
|
|
// destroy player on unmount
|
|
componentWillUnmount() {
|
|
if (this.player) {
|
|
this.player.dispose()
|
|
}
|
|
}
|
|
|
|
// wrap the player in a div with a `data-vjs-player` attribute
|
|
// so videojs won't create additional wrapper in the DOM
|
|
// see https://github.com/videojs/video.js/pull/3856
|
|
render() {
|
|
return (
|
|
<div data-vjs-player>
|
|
<video ref={ node => this.videoNode = node } className="video-js"></video>
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
```
|
|
|
|
You can then use it like this:
|
|
|
|
```jsx
|
|
// see https://github.com/videojs/video.js/blob/master/docs/guides/options.md
|
|
const videoJsOptions = {
|
|
autoplay: true,
|
|
controls: true,
|
|
sources: [{
|
|
src: '/path/to/video.mp4',
|
|
type: 'video/mp4'
|
|
}]
|
|
}
|
|
|
|
return <VideoPlayer { ...videoJsOptions } />
|
|
```
|
|
|
|
Dont forget to include the video.js CSS, located at `video.js/dist/video-js.css`.
|