vue-video-player vue视频插件

介绍

vue-video-player是videojs的vue版本
video.js官网:https://videojs.com/
引用一下官网介绍:Video.js是一个为HTML5世界从头开始构建的网络视频播放器。它支持HTML5视频和现代流媒体格式,它支持在桌面和移动设备上播放视频。

安装

  1. 安装依赖npm i vue-video-player -D
  2. 全局引用:
	// 在mian.js里面引入
	import "video.js/dist/video-js.css";
	import {videoPlayer} from "vue-video-player";
	Vue.use(VideoPlayer)

或者局部引用

	// 在用的页面引
	import "video.js/dist/video-js.css";
    import {videoPlayer} from "vue-video-player";
    
    // 在components里面声明一下videoPlayer
    components: {
            videoPlayer
        }
    

用法

<video-player class="video-player vjs-custom-skin"
    ref="videoPlayer"
    :playsinline="true"
    :options="playerOptions"
    @play="onPlayerPlay($event)"
    @pause="onPlayerPause($event)"
    @ended="onPlayerEnded($event)"
    @loadeddata="onPlayerLoadeddata($event)"
    @waiting="onPlayerWaiting($event)"
    @playing="onPlayerPlaying($event)"
    @timeupdate="onPlayerTimeupdate($event)"
    @canplay="onPlayerCanplay($event)"
    @canplaythrough="onPlayerCanplaythrough($event)"
    @ready="playerReadied"
    @statechanged="playerStateChanged($event)">
</video-player>

配置项

playerOptions

  • playbackRates : [ 0.5, 1.0, 1.5, 2.0 ], //可选择的播放速度
  • autoplay : false, //如果true,浏览器准备好时开始回放。
  • muted : false, // 默认情况下将会消除任何音频。
  • loop : false, // 视频一结束就重新开始。
  • preload : ‘auto’, // 建议浏览器在加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  • language : ‘zh-CN’,
  • aspectRatio : ‘16:9’, // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  • fluid : true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  • sources : [{ type : “”, src : ‘http://www.html5videoplayer.net/videos/madagascar3.mp4’//url地址 }],
  • poster : “”, //你的封面地址
  • width: document.documentElement.clientWidth,
  • notSupportedMessage : ‘此视频暂无法播放,请稍后再试’, //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  • controlBar : { timeDivider : true,//当前时间和持续时间的分隔符durationDisplay : true,//显示持续时间 remainingTimeDisplay : false,//是否显示剩余时间功能 fullscreenToggle : true //全屏按钮
    }

事件

methods: {
    //监听播放
    onPlayerPlay (player) {
        console.log(player);
        // this.$refs.videoPlayer.player.play();
    },
    //监听暂停
    onPlayerPause (player) {
        console.log(player);
        // this.$refs.videoPlayer.player.pause();
    },
    //监听播放状态改变
    playerStateChanged (player) {
        // console.log(player);
    },
    //监听媒体是否已到达结尾,播放完
    onPlayerEnded (player) {
        // console.log(player);
    },
    //DOM元素上的readyState更改导致播放停止。
    onPlayerWaiting (player) {
        // console.log(player);
    },
    //媒体不再被禁止播放,并且已开始播放。
    onPlayerPlaying (player) {
        // console.log(player);
    },
    //当播放器在当前播放位置下载数据时触发
    onPlayerLoadeddata (player) {
        // console.log(player);
    },
    //当前播放位置发生变化时触发。
    onPlayerTimeupdate (player) {
        // console.log(player);
    },
    //媒体的readyState为HAVE_FUTURE_DATA或更高
    onPlayerCanplay(player) {
        // console.log('player Canplay!', player)
    },
    //媒体的readyState为HAVE_ENOUGH_DATA或更高。这意味着可以在不缓冲的情况下播放整个媒体文件。
    onPlayerCanplaythrough(player) {
        // console.log('player Canplaythrough!', player)
    },
    //将侦听器绑定到组件的就绪状态。与事件监听器的不同之处在于,如果ready事件已经发生,它将立即触发该函数。。
    playerReadied(player) {
        // seek to 10s
        console.log('example player 1 readied', player);
        // player.currentTime(0)
        // console.log('example 01: the player is readied', player)
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章