成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vue + hls 循環(huán) 實(shí)時(shí)監(jiān)控視頻(m3u8格式)列表

yedf / 1820人閱讀

摘要:默認(rèn)已經(jīng)安裝好了,組件這里以為例,用什么庫問題不大注循環(huán)這種實(shí)時(shí)視頻的做法其實(shí)不推薦,但是你保不準(zhǔn),真的有這樣的需要安裝依賴使用循環(huán)渲染節(jié)點(diǎn)監(jiān)控通道播放掛載節(jié)點(diǎn),解析結(jié)構(gòu)略節(jié)點(diǎn)掛載播放實(shí)時(shí)監(jiān)控請求和心跳等涉及業(yè)務(wù)的略正常解

默認(rèn)vue已經(jīng)安裝好了,UI組件這里以vux為例,用什么UI庫問題不大
注:循環(huán)這種實(shí)時(shí)視頻的做法其實(shí)不推薦,但是你保不準(zhǔn),真的有這樣的需要

1. 安裝依賴 hls.js

npm i hls.js -S

2. 使用 2.1 html 循環(huán)渲染video節(jié)點(diǎn)

XX監(jiān)控 通道{{video.which}} 播放

2.2 【js】hls掛載節(jié)點(diǎn),解析
// 結(jié)構(gòu)略
import Hls from "hls.js";

data() {
  return {
    videos: []
  }
},

methods: {
  // 節(jié)點(diǎn)掛載---$refs
  attach() {
    for (let index = 0; index < this.videos.length; index++) {
      if (Hls.isSupported()) {
        this.videos[index].hls = new Hls();
        this.videos[index].hls.attachMedia(this.$refs[this.videos[index].ref][0]);
      }
    }
  },

  // 播放實(shí)時(shí)監(jiān)控
  playVideo(channel) {
    let _this = this;
    let videoRef = this.videos[channel-2].ref;
    this.$refs[videoRef][0].controls = "controls";
    // 請求和心跳等涉及業(yè)務(wù)的略
    _this.videos[channel-2].hls.loadSource(res.data.url);
    // 正常解析
    _this.videos[channel-2].hls.on(Hls.Events.MANIFEST_PARSED, function () {
      _this.$refs[videoRef][0].play()
    });
    // 失敗
    _this.videos[channel-2].hls.on(Hls.Events.ERROR, function (event, data) {
      if (data.fatal) {
        switch(data.type) {
          // 網(wǎng)絡(luò)錯誤導(dǎo)致的錯誤,據(jù)觀察這種類型的錯,占比最高
          case Hls.ErrorTypes.NETWORK_ERROR:
            // 根據(jù)自己業(yè)務(wù)(心跳/錯誤次數(shù) 需要加載還是重新請求,這里只給出簡單的,加載情況作為示例)
            hls.startLoad();
            break;
          case Hls.ErrorTypes.MEDIA_ERROR:
            // 多媒體錯誤
            hls.recoverMediaError();
            break;
          default:
            _this.videos[channel-2].hls.destroy();
            _this.$nextTick(() => {
            // 非網(wǎng)絡(luò)或多媒體錯誤,重新獲取url
             _this.playVideo(channel);
           })
           break;
        }
      }
    }
  }
}

// 選擇生命周期(需要$el已經(jīng)存在,mounted()或者keep-alive的activated())
// 我這里使用的是activated()
activated(){
  // axios 請求略(這里演示用固定數(shù)量,通道從2開始)
  this.videos = [];
  for (let i = 0; i < 5; i++) {
    let item = {
      hls: null,
      ref: `video${i+2}`,
      which: i+2,
    }
    this.videos.push(item)
    this.$nextTick(() => {
      // 可以放到請求地址成功后面(推薦)
      this.attach()
    })
  }
}

// 銷毀
deactivated() {
  for (let i = 0; i < this.videos.length; i++) {
    this.videos[i].hls.destroy();
  }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110290.html

相關(guān)文章

  • 關(guān)于直播視頻格式和瀏覽器兼容性歷史的來龍去脈

    摘要:和格式的瀏覽器兼容性移動端因?yàn)樘O果公司對的強(qiáng)烈抵制以及自己定的視頻協(xié)議,所以在端原生支持格式的視頻播放而不支持的播放,而且因?yàn)樘O果在移動端的領(lǐng)頭作用,所以其他移動端包括瀏覽器也都原生支持格式的視頻播放。 因?yàn)檎`打誤撞來到了淘寶直播團(tuán)隊(duì),從開始完全不了解直播技術(shù),現(xiàn)在因?yàn)閘eader暫時(shí)的離開,準(zhǔn)備接手h5播放器的迭代,就不得不開始了解相關(guān)的視頻技術(shù),先整理一下在直播技術(shù)中的視頻格式和不...

    you_De 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<