[](https://github.com/surmon-china/vue-video-player/stargazers)
[](https://travis-ci.org/surmon-china/vue-video-player)
[](https://github.com/surmon-china/vue-video-player/issues)
[](https://github.com/surmon-china/vue-video-player/network)
[](https://github.com/surmon-china/vue-video-player)
[](https://github.com/surmon-china/vue-video-player)
[](https://twitter.com/intent/tweet?url=https://github.com/surmon-china/vue-video-player)
[](https://nodei.co/npm/vue-video-player/)
[](https://nodei.co/npm/vue-video-player/)
# Vue-Video-Player
[video.js](https://github.com/videojs/video.js) player component for Vue.
适用于 Vue 的 [video.js](https://github.com/videojs/video.js) 播放器组件。
# Example
[Demo Page](https://surmon-china.github.io/vue-video-player)
[CDN Example](https://jsfiddle.net/u69gnx90/)
[nuxt.js/ssr example code](https://github.com/surmon-china/vue-video-player/blob/master/examples/nuxt-ssr-example)
[More Example Code](https://github.com/surmon-china/vue-video-player/tree/master/examples)
# Install
#### CDN
``` html
```
#### NPM
``` bash
npm install vue-video-player --save
```
### Mount
#### mount with global
``` javascript
import Vue from 'vue'
import VueVideoPlayer from 'vue-video-player'
// require videojs style
import 'video.js/dist/video-js.css'
// import 'vue-video-player/src/custom-theme.css'
Vue.use(VueVideoPlayer, /* {
options: global default options,
events: global videojs events
} */)
```
#### mount with component
```javascript
// require styles
import 'video.js/dist/video-js.css'
import { videoPlayer } from 'vue-video-player'
export default {
components: {
videoPlayer
}
}
```
#### mount with ssr
```javascript
// If used in nuxt.js/ssr, you should keep it only in browser build environment
if (process.browser) {
const VueVideoPlayer = require('vue-video-player/dist/ssr')
Vue.use(VueVideoPlayer)
}
```
#### videojs extend
```javascript
import videojs from 'video.js'
// videojs plugin
const Plugin = videojs.getPlugin('plugin')
class ExamplePlugin extends Plugin {
// something...
}
videojs.registerPlugin('examplePlugin', ExamplePlugin)
// videojs language
videojs.addLanguage('es', {
Pause: 'Pausa',
// something...
})
// more videojs api...
// vue component...
```
### Difference(使用方法的异同)
**SSR and the only difference in the use of the SPA:**
- SPA worked by the `component`, find videojs instance by `ref attribute`.
- SSR worked by the `directive`, find videojs instance by `directive arg`.
- Other configurations, events are the same.
### SPA
``` vue
```
### SSR
``` vue
```
# Issues
[videojs-contrib-hls - e is not defined](https://github.com/surmon-china/vue-video-player/issues/90)
# API
- component api:
* `events` : `[ Array, default: [] ]` : custom videojs event to component
* `playsinline` : `[ Boolean, default: false ]` : set player not full-screen in mobile device
* `crossOrigin` : `[ String, default: '' ]` : set crossOrigin to video
* `customEventName` : `[ String, default: 'statechanged' ]` : custom the state change event name
- video.js api
* [video.js options](http://docs.videojs.com/tutorial-options.html)
* [video.js docs](http://docs.videojs.com/)
# videojs plugins
- [videojs-resolution-switcher](https://github.com/kmoskwiak/videojs-resolution-switcher)
- [videojs-contrib-hls](https://github.com/videojs/videojs-contrib-hls)
- [videojs-youtube](https://github.com/videojs/videojs-youtube)
- [videojs-vimeo](https://github.com/videojs/videojs-vimeo)
- [videojs-hotkeys](https://github.com/ctd1500/videojs-hotkeys)
- [videojs-flash](https://github.com/videojs/videojs-flash)
- [videojs-contrib-ads](https://github.com/videojs/videojs-contrib-ads)
- [more plugins...](https://github.com/search?o=desc&q=videojs+plugin&s=stars&type=Repositories&utf8=%E2%9C%93)
# Author
[Surmon](https://surmon.me)