zoukankan      html  css  js  c++  java
  • [JavaScript] HTML5 播放hls流媒体视频流

    在最新版的 Android webview 中不用任何插件,可以直接播放

    在windows10自带的Edge浏览器 可直接播放,PC端 safari浏览器 可直接播放

    PC端chrome,IE,Firefox以及集成以上内核的各种浏览器,以及旧版的Android SDK的webview 不能播放

    在不能播放的情况下,需要引入hls.js

    如下示例:

    <template>
      <div class="camera-module">
        <div class="video-view">
          <video ref="video" id="video-rtmp" preload="auto" autoplay="autoplay" muted></video>
        </div>
      </div>
    </template>
    <script>
      import {getCamera} from '../../api/proxyApi'
      import Hls from 'hls.js'
      export default {
        name: 'CameraModule',
        data () {
          return {
            url: '',
            hls: null
          }
        },
        mounted () {
          getCamera ({
            cameraIndexCode: '30615f71e6634fb692eec993aa6c539e',
            protocol: 'hls'
         }).then(resp => {
           const data = JSON.parse(resp)
           console.log('获取监控点视频流URL:', data)
           if (data.code === '0') {
             this.url = data.data.url
           this.$nextTick(() => {
             this.getStream(this.url)
           })
          }
         })
        },
        methods: {
          getStream (url) {
            if (Hls.isSupported()) {
              this.hls = new Hls();
              this.hls.loadSource(url);
              this.hls.attachMedia(this.$refs.video);
    
              this.hls.on(Hls.Events.MANIFEST_PARSED, () => {
                console.log("加载成功");
                this.$refs.video.play();
              });
              this.hls.on(Hls.Events.ERROR, (event, data) => {
                // console.log(event, data);
                // 监听出错事件
                console.log("加载失败");
              });
            } else if (this.$refs.video.canPlayType('application/vnd.apple.mpegurl')) {
              // this.$refs.video.src = 'https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8';
              // this.$refs.video.addEventListener('loadedmetadata',function() {
              //   this.$refs.video.play();
              // });
            }
          },
          videoPause () {
            if (this.hls) {
              this.$refs.video.pause();
              this.hls.destroy();
              this.hls = null;
            }
          }
        }
      }
    </script>

  • 相关阅读:
    .net core3.1 使用log4日志
    windows 使用IIS 部署 .net core3.1
    EntityFramework 延时加载、事务、导航属性
    EntityFramework EF状态跟踪和各种查询
    EF查看SQL2种方式 和 映射
    Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
    async和await
    线程异常处理和取消和线程锁
    Task和TaskFactory
    thread:线程等待,回调
  • 原文地址:https://www.cnblogs.com/frost-yen/p/13055638.html
Copyright © 2011-2022 走看看