vue2.0 vue-video-player 直播hls 回放mp4

  • 前言

這兩天在寫跟視頻有關的內(nèi)容。要支持播放mp4和直播流。網(wǎng)上大都推薦vue-video-player,所以也用了這個??墒侵虚g遇到了很多問題

印象最深的是這個:

  • 直播流 引用videojs-contrib-hls后控制臺一直報錯EventTarget undefined
  • hls直播流報錯 CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED

然后,參考了大神的這個例子vue-video-player demo

注意:

當你的項目按照大神的例子報錯的時候,卸載package.json中所有的video相關的插件,重新安裝,然后重啟,就可以了。

  • 本人實踐成功的步驟:親測有用

我的git項目地址--目前只有直播的例子,沒有mp4的例子

前提條件:安裝了npm vue
安裝node及npm https://nodejs.org/en/download/
全局安裝vue腳手架 npm install -g vue-cli

1. 創(chuàng)建項目
vue init webpack my-vvp (my-vvp是你的項目名,可以自定義)
// 過程中會讓輸入一些項目名、作者等,可以直接enter鍵,
// 但是注意, 在詢問是否使用eslint 開始,我就輸入了n(代表no),因為我不會用這些
// 完成后,會自動提示接下來執(zhí)行的步驟:
cd my-vvp
npm run dev
創(chuàng)建操作.png
2. 安裝插件
 npm install vue-video-player -s
 npm install videojs-contrib-hls.js -s

npm install sass-loader -s
// 安裝sass-loader是因為萬一你項目中要寫css,如果只是看視頻的話,可以不安裝

// 安裝完sass-loader后,在 build--webpack.base.conf.js中大概32行的module對象中配置css代碼:
{
        test: /\.scss$/,
        loaders: ['style', 'css', 'sass']
}

3. 配置main.js
import VideoPlayer from 'vue-video-player'
Vue.use(VideoPlayer)
4. 編寫vue頁面
// 可以直接在components的HelloWorld.vue里面寫,也可以src中任意地方新建vue頁面來寫,下面是vue頁面的完整代碼
// 注意三個import引用即可

<template>
  <div class="player-container">
    <video-player class="vjs-custom-skin" :options="playerOptions"></video-player>
  </div>
</template>

<script>
  //引入video樣式
  import 'video.js/dist/video-js.css'
  import 'vue-video-player/src/custom-theme.css'

  //引入hls.js
  import 'videojs-contrib-hls.js/src/videojs.hlsjs'

  export default {
    name:'HelloWorld',
    data () {
      return {
        playerOptions: {
          playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
          autoplay: false, //如果true,瀏覽器準備好時開始回放。
          controls: true, //控制條
          preload: 'auto', //視頻預加載
          muted: false, //默認情況下將會消除任何音頻。
          loop: false, //導致視頻一結(jié)束就重新開始。
          language: 'zh-CN',
          aspectRatio: '16:9', // 將播放器置于流暢模式,并在計算播放器的動態(tài)大小時使用該值。值應該代表一個比例 - 用冒號分隔的兩個數(shù)字(例如"16:9"或"4:3")
          fluid: true, // 當true時,Video.js player將擁有流體大小。換句話說,它將按比例縮放以適應其容器。
          sources: [{
            type: 'application/x-mpegURL',
            src: 'https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8'
          }],
          poster: "http://static.smartisanos.cn/pr/img/video/video_03_cc87ce5bdb.jpg", //你的封面地址
          width: document.documentElement.clientWidth,
          notSupportedMessage: '此視頻暫無法播放,請稍后再試' //允許覆蓋Video.js無法播放媒體源時顯示的默認信息。
        }
      }
    },
    methods: {
    },
    computed: {
    }
  }
</script>


5. 完成
image.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容