vue項目用vue-video-player播放m3u8踩坑

播放m3u8 用vue-video-player

千萬不能自己安裝 videojs、千萬不能自己安裝 videojs、千萬不能自己安裝 videojs、

? ? ? ? ? ? ? ? npm install vue-video-player?--save

? ? ? ? ? ? ? ? npm install?--save videojs-contrib-hls


main.js 中

import VideoPlayer from 'vue-video-player'

require('video.js/dist/video-js.css')

require('vue-video-player/src/custom-theme.css')

const hls =require("videojs-contrib-hls")

Vue.use(hls)

Vue.use(VideoPlayer)

引用頁面

<video-player? class="video-player vjs-custom-skin"

? ? ? ? ? ? ? ? ref="videoPlayer"

? ? ? ? ? ? ? ? :playsinline="true"

? ? ? ? ? ? ? ? :options="playerOptions"

? ? ? ? ? ? ? ? @play="onPlayerPlay($event)"

? ? ? ? ? ? ? ? @pause="onPlayerPause($event)"

? ? ? ? ? ? ? >

playerOptions: {

? ? ? ? playbackRates: [0.7, 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: [

? ? ? ? ? {


? ? ? ? ? ? src:' https://oss.test.lesmartx.com/SP/lesmart/T600202101230000002/live/room/900-8325114-986802/videos/o-vod.m3u8',

? ? ? ? ? ? type: 'application/x-mpegURL', // 這里的種類支持很多種:基本視頻格式、直播、流媒體等,具體可以參看git網址項目

? ? ? ? ? ? // type:"video/mp4",

? ? ? ? ? ? //? src: 'https://oss.test.lesmartx.com/SP/lesmart/T600202101230000002/live/room/900-8324913-659955/videos/66132143455001813715294126897663772535.mp4' // url地址

? ? ? ? ? }

? ? ? ? ],

? ? ? ? hls: true,

? ? ? ? poster: '', // 你的封面地址

? ? ? ? width: document.documentElement.clientWidth, // 播放器寬度

? ? ? ? notSupportedMessage: '此視頻暫無法播放,請稍后再試', // 允許覆蓋Video.js無法播放媒體源時顯示的默認信息。

? ? ? ? controlBar: {

? ? ? ? ? timeDivider: true,

? ? ? ? ? durationDisplay: true,

? ? ? ? ? remainingTimeDisplay: false,

? ? ? ? ? fullscreenToggle: true // 全屏按鈕

? ? ? ? }

? ? ? },

computed: {

? ? player() {

? ? ? return this.$refs.videoPlayer.player//自定義播放

? ? },

? methods: {

onPlayerPlay(play){

? ? ? play.play()

? ? },

? ? onPlayerPause(player) {

? ? ? console.log("pause");

? ? ? },

},

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容