在Vue中使用視頻是很常見的需求。如果需要在Vue應(yīng)用中嵌入視頻,我們可以使用HTML5的video標(biāo)簽來實(shí)現(xiàn)。但是,如果我們要使用.mov文件來嵌入視頻,則需要進(jìn)行一些特別的處理。下面我們來詳細(xì)了解一下Vue如何導(dǎo)入.mov文件。
首先,我們需要安裝一個(gè)可以解析.mov文件的庫。使用npm來安裝該庫,打開終端并輸入以下命令:
npm install video.js --save在安裝完成后,在Vue組件中可以通過import來引入該庫:
import videojs from 'video.js' import '../../node_modules/video.js/dist/video-js.css'由于.video-js 和.vjs-poster這兩個(gè)樣式類需要在全局范圍內(nèi)使用,我們需要在app.vue中引入video.js的css文件。 此處的相對(duì)路徑可能會(huì)因文件引入的位置而有所不同,大家可以根據(jù)自己的實(shí)際情況進(jìn)行修改。 在Vue組件的data中聲明一些必要的變量,比如路徑,視頻文件名等。
data() { return { videoPath: '/static/test.mov', videoName: 'test', player: null // videojs播放器對(duì)象 } }接下來,我們需要在Vue組件的mounted鉤子中進(jìn)行視頻的渲染。
mounted() { let self = this let options = { autoplay: false, controls: true, // 配置播放源項(xiàng) sources: [{ src: self.videoPath, type: 'video/mp4' }] } // 創(chuàng)建videojs對(duì)象 let player = videojs(self.videoName, options, function onPlayerReady() { videojs.log('Your player is ready!'); // 設(shè)置播放器的寬高,實(shí)現(xiàn)全屏播放 player.width(document.documentElement.clientWidth); player.height(document.documentElement.clientHeight); }); self.player = player }在mounted鉤子中,我們可以調(diào)用videojs庫的API來進(jìn)行視頻的渲染。需要注意的是,這里我們使用了document.documentElement.clientWidth來獲取視窗的寬度,同時(shí)使用了document.documentElement.clientHeight來獲取視窗的高度,從而實(shí)現(xiàn)了全屏播放的功能。 最后,在Vue組件生命周期中的destroyed鉤子中我們需要對(duì)視頻進(jìn)行銷毀。
destroyed () { // 銷毀實(shí)例 if (this.player) { this.player.dispose() } },總結(jié)來說,導(dǎo)入.mov視頻的過程其實(shí)就是使用videojs庫對(duì)視頻源進(jìn)行解析,并結(jié)合video標(biāo)簽來進(jìn)行視頻的渲染。通過以上的步驟,我們可以在Vue應(yīng)用中嵌入.mov格式的視頻,并且實(shí)現(xiàn)了全屏播放的功能。