vue怎么合并两个视频_基于Vue插入视频的2种方法小结

本文介绍了两种在Vue项目中插入视频的方法:1) 使用iframe插入视频链接,通过事件处理实现视频切换;2) 引用vue-video-player插件,简化代码并提供更丰富的功能。详细讲解了相关代码实现和注意事项。
摘要由CSDN通过智能技术生成

屏幕快照 2019-04-01 下午8.06.02.png

方法一:iframe插入视频链接

1.1 ##### 当前播放的视频

allow='autoplay;encrypted-media' allowfullscreen style='width:100%;height:500px;'>

{{this.activeVideo.title}}

1.2#####视频列表

@click="activeVideoShow(video.id)">

{{video.title}}

{{video.speaker}}

{{video.views}} Views

{{video.describe}}

1.3#####定义的数据结构(自己写的demo,可能实际中后台返的数据结构会有所不同)

data () {

return {

flag:false,

videos:[{

id:1,title:'test2',youtobeURL:'http://player.youku.com/embed/XMzcwNTY3NTM2MA',speaker:'harry', likes:101,views:0,describe:'good'

},{

id:2,title:'test3',youtobeURL:'http://player.youku.com/embed/XMzcwNTY3NTM2MA',speaker:'harry', likes:100,views:75,describe:'good'

}],

activeVideo:{

id:3,title:'test1',thumbnail:'./../../static/images/headImg.png',speaker:'harry', likes:0,views:0,describe:'good',

youtobeURL:'http://player.youku.com/embed/XMzcwNTY3NTM2MA'

}

}

}

1.4##### 点击视频列表中的视频转变为当前视频

ps:最开始的时候把点击事件写在iframe上,但是点击无效。后来写了个div,完美解决:

@click="activeVideoShow(video.id)">

1.5#####转换当前视频的点击事件:通过id来判断当前点击的是哪个

activeVideoShow(id){

this.videos.filter(item=>{

if(id == item.id){

this.activeVideo=item

}

})

}

方法二:引用了vue-video-player插件(没有视频列表)

相对于iframe方法写了一堆div和style,vue-video-player简直精简到起飞

2.1#####第一次用这个插件,不是很熟悉,所以根据官方的API 写了一个videoPlayer的组件,代码如下:

2.1-1#####需要引入video.js和定义相关的options

import videojs from 'video.js'

---------------------------------

props:{

options:{

type:Object,

default(){

return{

}

}

}

},

data(){

return{

player:null

}

},

mounted(){

this.player=videojs(this.$refs.videoPlayer,this.options,function onPlayerReady(){

console.log('onPlayerReady',this)

})

}

2.2#####在插入视频的页面中引入上面的videoPlayer组件,在view层代码如下:

ref="videoPlayer"

:playsinline='false'

:options='videoOptions'

@play="onPlayerPlay($event)"

@pause='onPlayerPause($event)'

@statechagned='playerStateChanged($event)'

>

2.3#####需要引入的插件

import './../../node_modules/video.js/dist/video-js.css'

import './../../node_modules/vue-video-player/src/custom-theme.css'

import videojs from 'video.js'

import {videoPlayer} from 'vue-video-player'

import 'videojs-flash'

import VideoPlayer from '@/components/videoPlayer.vue'

2.3-1#####定义相关数据

props:{

state:Boolean,

},

data(){

return{

videoOptions:{

playbackRates:[1.0,1.5,2.0], // 播放速度

autoplay:false, // 如果true,浏览器准备好时开始回放

controls:true,

muted:false, // 默认情况下将会消除任何音频

loop:false, //循环播放

preload:'auto', // 加载元素后立即加载视频

language:'zh-CN',

aspectRatio:'16:9', //流畅模式,并计算播放器动态大小时使用该值

fluid:true, //按比例缩放以适应容器

sources:[{

src:'http://vjs.zencdn.net/v/oceans.mp4',

type:'video/mp4'

}],

poster:'http://vjs.zencdn.net/v/oceans.png', // 封面地址

notSupportedMessage:'此视频暂无法播放,请稍后再试',

}

}

}

ps:用canvas写了个字幕功能,还有待修缮,后期补上。

总结

以上所述是小编给大家介绍的基于Vue插入视频的2种方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值