• vue 使用 video.js 播放 m3u8 视频流


    vue 使用 video.js 播放 m3u8 视频流

    首先呢,遇到一个项目,是需要使用播放器在web上播放视频流,项目使用vue开发的,然后就找了一下相应的插件,找到了 video.js,自己用的时候感觉还不错,可以满足自己的需求,记录一下。

    安装依赖包

    npm install video.js --save // 视频播放器插件
    npm install videojs-contrib-hls  --save // 播放hls流插件
    npm install @videojs/http-streaming  --save
    

    安装的时候直接 npm 安装,但是我安装的时候报了错,可能是网络的原因,然后呢,就用的 cnpm 安装的,装倒是都装上去了,但是 npm run serve 的时候项目起不来了,然后没办法,把依赖都删掉然后重新 npm install 一下就可以了。

    引入 video.js 样式

    在 main.js 文件引入video.js 的样式。

    import 'video.js/dist/video-js.css'  //videojs样式
    

    编写视频组件

    然后就自己封装了一个视频组件,用来渲染视频。

    <doc>
      视频组件
    </doc>
    <template>
      <video id="video" style=" 100%;height: 100%;" class="video-js vjs-default-skin" preload="auto">
        <source src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8" type="application/x-mpegURL">
      </video>
    </template>
    <script>
      import videojs from 'video.js'
      import 'videojs-contrib-hls'
      import "@videojs/http-streaming"
      export default {
        data() {
          return {
            player: null,
          }
        },
        mounted() {
          this.init()
        },
        methods: {
          init() {
            // 播放器初始化
            this.$nextTick(() => {
              this.player = videojs('video' , {
                bigPlayButton: false,
                textTrackDisplay: false,
                posterImage: true,
                errorDisplay: false,
                controlBar: false,
                muted: true //静音模式 、、 解决首次页面加载播放。
              }, function () {
                this.play() // 自动播放
              })
            })
          }
        },
        // 离开页面销毁视频播放器
        beforeDestroy() {
          if (this.player != null) {
            this.player.dispose() // dispose()会直接删除Dom元素
          }
        }
      }
    </script>
    <style scoped>
    
    </style>
    

    上班的视频地址被我写死了,真正用的时候改了,id 也是。

    说明

    刚开始视频加载不出来,一直转圈圈。然后怀疑是代理的问题,结果不是,起码我这里不是,然后就改了一个地方就好了,就是router 的 history 改成了 hash。

    效果

    参考资料

    参考博文:https://blog.csdn.net/weixin_39135926/article/details/118225035

    参考Github:https://github.com/videojs/http-streaming

    【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处!
    【重要说明】本文为本菜鸟的学习记录,论点和观点仅代表个人不代表此技术的真理,目的是学习和可能成为向别人分享的经验,因此有错误会虚心接受改正,但不代表此时博文无误!
    【博客园地址】JayveeWong: http://www.cnblogs.com/wjw1014
    【CSDN地址】JayveeWong: https://blog.csdn.net/weixin_42776111
    【Gitee地址】Jayvee:https://gitee.com/wjw1014
    【GitHub地址】Jayvee:https://github.com/wjw1014
  • 相关阅读:
    Day2----Python常用模块
    Day1--Python基础知识
    AES加密
    MOS管基本MOS管基本认识(快速入门)认识(快速入门)
    printf定义宏方便调试
    ESP8266上电透传与手动透传AT指令设置笔记
    三态门与高阻态
    步进电机原理
    关于stm32 MCU申请动态内存malloc的认识
    高低位数据分离的两种方法
  • 原文地址:https://www.cnblogs.com/wjw1014/p/15184613.html
Copyright © 2020-2023  润新知