Maison > Article > interface Web > Comment ajouter une vidéo dans vuejs
Comment ajouter une vidéo dans vuejs : 1. Insérez le lien vidéo via iframe 2. Ajoutez la vidéo en citant le plug-in vue-video-player ;
L'environnement d'exploitation de cet article : système Windows 7, vue version 2.9.6, ordinateur DELL G3.
Comment ajouter une vidéo à vuejs ?
Résumé de 2 méthodes pour insérer une vidéo basée sur Vue :
Méthode 1 : iframe insérer un lien vidéo
1.1 ##### Actuellement lecture de la vidéo
<div class="video-wrap" style="width:80%;float:left;oveflow:hidden;"> <iframe :src="this.activeVideo.youtobeURL" frameborder='0' allow='autoplay;encrypted-media' allowfullscreen style='width:100%;height:500px;'> </iframe> <h3>{{this.activeVideo.title}}</h3> </div>
1.2#####Video list
<div class="video-list" style="float:right;width:20%;text-align:center;"> <div v-for='video in videos' :key='video.id' class="thumbnail" > <div class="thumbnail-img" > <div style="height:50%;width:100%;position:absolute;z-index:999" @click="activeVideoShow(video.id)"></div> <iframe :src='video.youtobeURL' :alt="video.title" /> </div> <div class="thumbnail-info"> <h4>{{video.title}}</h4> <div class="thumbnail-views"> <span>{{video.speaker}}</span> <span>{{video.views}} Views</span> </div> <div class="thumbnail-describe"> {{video.describe}} </div> </div> </div> </div>
1.3##### structure de données définie (démo écrite par moi-même, la structure de données réelle renvoyée par l'arrière-plan peut être différente ) )
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##### Cliquez sur la vidéo dans la liste des vidéos pour passer à la vidéo actuelle
ps : Au début, l'événement de clic était écrit sur l'iframe, mais le clic était invalide. Plus tard, j'ai écrit un div, la solution parfaite :
<div style="height:50%;width:100%;position:absolute;z-index:999" @click="activeVideoShow(video.id)"></div>
1.5##### Convertir l'événement de clic de la vidéo actuelle : Utilisez l'identifiant pour déterminer lequel est actuellement cliqué
activeVideoShow(id){ this.videos.filter(item=>{ if(id == item.id){ this.activeVideo=item } }) }
Méthode 2 : Référence du plug-in vue -video-player (pas de liste de vidéos)
Comparé à la méthode iframe d'écriture d'un tas de divs et de styles, vue-video-player est simplement rationalisé pour décoller
2.1#### #C'est la première fois que j'utilise ce plug-in, ce n'est pas très familier, j'ai donc écrit un composant videoPlayer basé sur l'API officielle. Le code est le suivant :
<div> <video ref="videoPlayer" class="video-js"></video> </div>
2.1-1#####. Vous devez introduire video.js et définir les options associées
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#####Introduisez le composant videoPlayer ci-dessus dans la page où la vidéo est insérée. Le code dans la couche de vue est le suivant :
.
<video-player class="video-player vjs-custom-skin " ref="videoPlayer" :playsinline='false' :options='videoOptions' @play="onPlayerPlay($event)" @pause='onPlayerPause($event)' @statechagned='playerStateChanged($event)' > </video-player>
2.3#####Plug-ins à introduire
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##### Définir les données pertinentes
props:{ state:Boolean, }, data(){ return{ videoOptions:{ playbackRates:[1.0,1.5,2.0], // 播放速度 autoplay:false, // 如果true,浏览器准备好时开始回放 controls:true, muted:false, // 默认情况下将会消除任何音频 loop:false, //循环播放 preload:'auto', // <video>加载元素后立即加载视频 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:'此视频暂无法播放,请稍后再试', } } }
Adresse du code : https : //github.com/yinglichen/videoPlayer
ps : J'ai écrit une fonction de sous-titre en utilisant Canvas, qui doit encore être réparée et sera ajoutée plus tard .
Recommandé : "La dernière sélection de 5 tutoriels vidéo vue.js"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!