vue-videojs7
Version:
A vue video player plugin using video.js 7.
170 lines (137 loc) • 3.77 kB
Markdown
# vue-videojs7
A vue video.js7 plugin, so you can play hls video(m3u8 format) within html5 easily, original forked from :
[https://github.com/surmon-china/vue-video-player](https://github.com/surmon-china/vue-video-player)
## Demo Page
[Demo for Video.js 7 m3u8 player](https://code.seniortesting.club/vue-videojs7/)
## How to use
### 1. Install the plugin
```
yarn add vue-videojs7
npm install vue-videojs7 --save
```
### 2. usage
#### 2.1 Method1: Use with mount as global
```
import Vue from 'vue'
import {VideoPlayer} from 'vue-videojs7'
Vue.use(VideoPlayer, /* {
options: global default videojs options,
events: global videojs videojs events
} */)
```
#### 2.2 Method2: Use with mount as component
```
import {videoPlayer} from 'vue-videojs7'
export default {
components: {
videoPlayer
}
}
```
#### 2.3 Method3: Integration with nuxt as plugin
1. Create a nuxt plugin located in this place: `~/plugins/vue-videojs7.js`, put below code:
```vue
import Vue from 'vue'
import VideoPlayer from 'vue-videojs7'
Vue.use(VideoPlayer, /* {
options: global default videojs options,
events: global videojs videojs events
} */)
```
2. Register the plugin in your `nuxt.config.js` file:
```vue
plugins: [
{src: '~/plugins/vue-videojs7.js', mode: 'client'}
]
```
3. import the component in your vue file:
```vue
<video-player ref="videoPlayer"
class="vjs-custom-skin"
:options="playerOptions"
="onPlayerPlay($event)"
="onPlayerReady($event)">
</video-player>
```
For detail configuration in nuxt project, check the [example nuxt code](https://github.com/alterhu2020/vue-videojs7/tree/master/examples/nuxt/)
## Example code
Detail full copied example from [Home.vue](https://github.com/alterhu2020/vue-videojs7/blob/master/src/views/Home.vue)
```
<template>
<div class="player">
<h3>Using Html5 to play m3u8 media file</h3>
<video-player ref="videoPlayer"
class="vjs-custom-skin"
:options="playerOptions"
="onPlayerPlay($event)"
="onPlayerReady($event)">
</video-player>
</div>
</template>
<script>
import VideoPlayer from '@/components/VideoPlayer.vue'
export default {
name: 'home',
components: {
VideoPlayer
},
data () {
return {
playerOptions: {
autoplay: true,
controls: true,
controlBar: {
timeDivider: false,
durationDisplay: false
}
// poster: 'https://surmon-china.github.io/vue-quill-editor/static/images/surmon-5.jpg'
}
}
},
computed: {
player () {
return this.$refs.videoPlayer.player
}
},
methods: {
onPlayerPlay (player) {
console.log('player play!', player)
},
onPlayerReady (player) {
console.log('player ready!', player)
this.player.play()
},
playVideo: function (source) {
const video = {
withCredentials: false,
type: 'application/x-mpegurl',
src: source
}
this.player.reset() // in IE11 (mode IE10) direct usage of src() when <src> is already set, generated errors,
this.player.src(video)
// this.player.load()
this.player.play()
}
},
mounted () {
const src = 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8'
this.playVideo(src)
}
}
</script>
<style scoped>
.player {
position: absolute !important;
width: 100%;
height: 60%;
}
.vjs-custom-skin {
height: 60% !important;
}
.vjs-custom-skin /deep/ .video-js {
height: 60%;
}
</style>
```
## Contact/Issues
Email: alterhu2020@gmail.com