赞
踩
一、安装
$ npm install video.js
二、main.js全局引入
// 引入video.js
import Videojs from 'video.js'
import 'video.js/dist/video-js.css'
Vue.prototype.$video = Videojs
三、组件中的使用
<div class="contentItem" v-for="(item,index) in this.jdvideoList2" :key="index">
<video ref="video" width="800" height="328" :id="item.videoId" class="video-js vjs-big-play-centered vjs-fluid" controls preload="auto">
<source type="video/mp4" :src="item.url">
</video>
</div>
// 该方法在 methods 中定义,在获取到数据后调用,index 为组件中绑定的动态 id;url 为视频地址 initVideo(index,url) { this.$nextTick(() => { let myPlayer = this.$video(document.getElementById(`${index}`), { controls: true, //自动播放属性,muted:静音播放 autoplay: false, //建议浏览器是否应在<video>加载元素后立即开始下载视频数据。 preload: "auto", //设置视频播放器的显示宽度(以像素为单位) // width: "800px", //设置视频播放器的显示高度(以像素为单位) // height: "400px", playbackRates: [0.5, 1, 1.5, 2, 3],// 倍速播放 controlBar: { playToggle:true }, }); myPlayer.src(url); // 重新初始化URL // myPlayer.load(url); //重新加载 }) },
// 设置视频宽度和高度,注意不要再标签上写 style,会导致全屏无效
<style lang="less" scoped>
.video_box {
margin: 10px;
width: 580px;
height: 328px;
}
.video-js {
width: 580px;
height: 328px;
}
</style>
四、自定义按钮位置
initVideo(index,url) { this.$nextTick(() => { let myPlayer = this.$video(document.getElementById(`${index}`), { controls: true, // 是否显示控制条 // poster: 'xxx', // 视频封面图地址 preload: 'auto', autoplay: false, fluid: true, // 自适应宽高 language: 'zh-CN', // 设置语言 muted: false, // 是否静音 inactivityTimeout: false, playbackRates: [0.5, 1, 1.5, 2, 3],// 倍速播放 controlBar: { // 自定义按钮的位置 children: [ {name: 'playToggle'}, // 播放按钮 {name: 'currentTimeDisplay'}, // 当前已播放时间 {name: 'progressControl'}, // 播放进度条 {name: 'durationDisplay'}, // 总时间 { // 倍数播放 name: 'playbackRateMenuButton', 'playbackRates': [0.5, 1, 1.5, 2, 2.5] }, { name: 'volumePanel', // 音量控制 inline: false, // 不使用水平方式 }, {name: 'FullscreenToggle'} // 全屏 // { // name: "pictureInPictureToggle" //画中画播放模式 // }, ] }, }); myPlayer.src(url); // 重新初始化URL // myPlayer.load(url); //重新加载 }) },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。