Socket
Socket
Sign inDemoInstall

vue-video-player

Package Overview
Dependencies
20
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-video-player

Video Player component for Vue


Version published
Maintainers
1
Install size
9.48 MB
Created

Readme

Source

GitHub issues GitHub forks GitHub stars Twitter

NPM NPM

Vue-Video-Player

Video.js player component for Vue.

Update

Updated to video.js 6+.

Example

Demo Page

Use Setup

Install vue-video-player

npm install vue-video-player --save

Vue mount

// require videojs style [and custom videojs theme]
require('video.js/dist/video-js.css')
require('vue-video-player/src/custom-theme.css')


// import
import Vue from 'vue'
import VueVideoPlayer from 'vue-video-player'


// or require
var Vue = require('vue')
var VueVideoPlayer = require('vue-video-player')


// mount with global
Vue.use(VueVideoPlayer)


// If used in Nuxt.js/SSR, you should keep it only in browser build environment
if (process.browser) {
  const VueVideoPlayer = require('vue-video-player/ssr')
  Vue.use(VueVideoPlayer)
}

// If you need to use more videojs extensions, you can introduce the corresponding videojs plug-in package before the vue program is instantiated, such as:
const { videojs } = VueVideoPlayer
videojs.plugin('myPlugin', myPluginFunction)
videojs.addLanguage('ml', myLanguageObject)
videojs.registerPlugin('examplePlugin', examplePlugin)
// videojs.[methods]...

// or require videojs (plugins || langs || ...)
require('video.js/dist/lang/ba')
require('videos-some-plugins')
require('videos...')

// mount with component(can't work in Nuxt.js/SSR)
import { videoPlayer } from 'vue-video-player'

export default {
  components: {
    videoPlayer
  }
}

Use the difference(使用方法的区别)

SSR and the only difference in the use of the SPA:

  • SPA worked by component, find videojs instance by ref attribute.
  • SSR worked by directive, find videojs instance by directive arg.
  • Other configurations, events are the same.

Use in SSR

<!-- You can custom the "myVideoPlayer" name used to find the videojs instance in current component -->
<template>
  <div class="video-player-box" 
       @play="onPlayerPlay($event)"
       @pause="onPlayerPause($event)"
       @ready="playerReadied"
       @statechanged="playerStateChanged($event)"
       v-video-player:myVideoPlayer="playerOptions">
  </div>
</template>

<script>
  export default {
    mounted() {
      console.log('this is current videojs instance object', this.myVideoPlayer)
    }
    // Omit the same parts as in the following component sample code
    // ...
  }
</script>

Use in SPA

<template>
  <video-player  class="video-player-box"
                 ref="videoPlayer"
                 :options="playerOptions"
                 :playsinline="true"
                 customEventName="customstatechangedeventname"

                 @play="onPlayerPlay($event)"
                 @pause="onPlayerPause($event)"
                 @ended="onPlayerEnded($event)"
                 @waiting="onPlayerWaiting($event)"
                 @playing="onPlayerPlaying($event)"
                 @loadeddata="onPlayerLoadeddata($event)"
                 @timeupdate="onPlayerTimeupdate($event)"
                 @canplay="onPlayerCanplay($event)"
                 @canplaythrough="onPlayerCanplaythrough($event)"

                 @statechanged="playerStateChanged($event)"
                 @ready="playerReadied">
  </video-player>
</template>

<script>
  // Similarly, you can also introduce the plugin resource pack you want to use within the component
  // require('some-videojs-plugin')
  export default {
    data() {
      return {
        playerOptions: {
          // videojs options
          muted: true,
          language: 'en',
          playbackRates: [0.7, 1.0, 1.5, 2.0],
          sources: [{
            type: "video/mp4",
            src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
          }],
          poster: "/static/images/author.jpg",
        }
      }
    },
    mounted() {
      console.log('this is current player instance object', this.player)
    },
    computed: {
      player() {
        return this.$refs.videoPlayer.player
      }
    },
    methods: {
      // listen event
      onPlayerPlay(player) {
        // console.log('player play!', player)
      },
      onPlayerPause(player) {
        // console.log('player pause!', player)
      },
      // ...player event

      // or listen state event
      playerStateChanged(playerCurrentState) {
        // console.log('player current update state', playerCurrentState)
      },

      // player is ready
      playerReadied(player) {
        console.log('the player is readied', player)
        // you can use it to do something...
        // player.[methods]
      }
    }
  }
</script>

More Example Code

API

  • component api:

    • playsinline(boolean, default: false): set player not full-screen in mobile device
    • customEventName(string, default: 'statechanged'): custom the state change event name
  • video.js api

Credits

Videojs plugins

License

Licensed under either of

at your option.

Author Blog

Surmon

Keywords

FAQs

Last updated on 14 Nov 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc