vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

这篇具有很好参考价值的文章主要介绍了vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

实例使用

vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

引入最新的ezuikit.js

//npm
npm install ezuikit-js
//index.html
<script src="./ezuikit.js"></script>
获取地址js和demo地址:https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm

看过官网的文档都知道萤石云的文档是多么的‘善解人意’哈,懂得都懂,很多东西没有说清楚的,只能靠自己去摸索或者看他们的demo来一点点测试实现

官网地址:https://open.ys7.com/help/31

(1)无法关闭声音

看官网文档的属性是添加audio:0即可,但是发现根本没有反应。然后还有就是说把autoplay: false,,但是最后发现,都没有反应。但是使用了自定义的控件之后,就可以实现了,就很尴尬

vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

(2)播放器模板

文档上面显示只有使用内置的播放器样式,组件 simple:极简版;standard:标准版;security:安防版;vioce:语音版,这几种类型,但是我们看demo上面就发现还有pcLive,pcRec。(具体demo文件下载地址在上面)。而且这两个属性还是很好用的那种,样式也是好看的

pcLive模式控件是这样的。

vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

(3)pcLive模式去除多余控件

在上面我们看到,这个模式下的控件有个头部设备名称的展示,如果我们想去除或者修改,就发现文档里面好像没有说明

vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)

然后我们看demo文件里面有个方法就是自定义的属性,添加控件themeData: themeData,,themeData的内容如下,引入这个我们可以添加或者删除不想要的控件了。功能有播放暂停、截图、录制、云台控制、语音对讲、放大、全屏等等

var themeData = {
      "header": {
        "color": "#1890ff",
        "activeColor": "#FFFFFF",
        "backgroundColor": "#000000",
        "btnList": [
          {
            "iconId": "deviceID",
            "part": "left",
            "defaultActive": 0,
            "memo": "顶部设备序列号",
            "isrender": 1
          },
          {
            "iconId": "deviceName",
            "part": "left",
            "defaultActive": 0,
            "memo": "顶部设备名称",
            "isrender": 1
          },
          {
            "iconId": "cloudRec",
            "part": "right",
            "defaultActive": 0,
            "memo": "云存储",
            "isrender": 0
          },
          {
            "iconId": "rec",
            "part": "right",
            "defaultActive": 0,
            "memo": "SD卡回放",
            "isrender": 0
          }
        ]
      },
      "footer": {
        "color": "#FFFFFF",
        "activeColor": "#1890FF",
        "backgroundColor": "#00000021",
        "btnList": [
          {
            "iconId": "play",
            "part": "left",
            "defaultActive": 1,
            "memo": "播放",
            "isrender": 1
          },
          {
            "iconId": "capturePicture",
            "part": "left",
            "defaultActive": 0,
            "memo": "截屏按钮",
            "isrender": 1
          },
          {
            "iconId": "sound",
            "part": "left",
            "defaultActive": 0,
            "memo": "声音按钮",
            "isrender": 1
          },
          {
            "iconId": "pantile",
            "part": "left",
            "defaultActive": 0,
            "memo": "云台控制按钮",
            "isrender": 1
          },
          {
            "iconId": "recordvideo",
            "part": "left",
            "defaultActive": 0,
            "memo": "录制按钮",
            "isrender": 1
          },
          {
            "iconId": "talk",
            "part": "left",
            "defaultActive": 0,
            "memo": "对讲按钮",
            "isrender": 1
          },
          {
            "iconId": "zoom",
            "part": "left",
            "defaultActive": 0,
            "memo": "电子放大",
            "isrender": 1
          },
          {
            "iconId": "hd",
            "part": "right",
            "defaultActive": 0,
            "memo": "清晰度切换按钮",
            "isrender": 1
          },
          {
            "iconId": "webExpend",
            "part": "right",
            "defaultActive": 0,
            "memo": "网页全屏按钮",
            "isrender": 1
          },
          {
            "iconId": "expend",
            "part": "right",
            "defaultActive": 0,
            "memo": "全局全屏按钮",
            "isrender": 1
          }
        ]
      }
    };

具体实例代码

//首先创建一个容器DOM
 <div id="video-container"></div>
//然后初始化,在合适的地方调用函数即可
init(){
	player =  new EZUIKit.EZUIKitPlayer({
      id:'video-container',
      autoplay: true,
      url:playUrl, //播放地址
      accessToken:accessToken, //token
      width: 780,
      height: 360,
      handleError: that.handleError(),
      handleSuccess:  that.handleSuccess(),
      //splitBasis:1, //旧版本3.5有个自带的分屏功能,现在没有了
      audio:0,
      themeData: themeData, //上面的对象内容
    });
    that.playerVideo = player;
}

多个视频播放的话,demo里面也有说明的,就是new多个实例,但是按照demo里面的用法,其实我们实际使用是感觉不行的,所以只能说按照demo的思路走

demo的用法

var playr;
var playr2;
    fetch('https://open.ys7.com/jssdk/ezopen/demo/token')
      .then(response => response.json())
      .then(res => {
        var accessToken = res.data.accessToken;
        playr = new EZUIKit.EZUIKitPlayer({
          id: 'video-container', // 视频容器ID
          accessToken: accessToken,
          url: 'ezopen://open.ys7.com/G39444019/1.live',
          template: 'pcLive', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题;
          plugin: ['talk'],                       // 加载插件,talk-对讲
          width: 600,
          height: 400,
        });
        playr2 = new EZUIKit.EZUIKitPlayer({
          id: 'video-container2', // 视频容器ID
          accessToken: "at.e0mnhu50d7bwohb40358mchq13aobjm2-6m2v78jd7m-1g22scv-lcn0rdqm1",
          url: 'ezopen://open.ys7.com/G39444019/1.live',
          template: 'pcLive', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题;
          plugin: ['talk'],                       // 加载插件,talk-对讲
          width: 600,
          height: 400,
        });
      });

通过demo发现,主要是区别就是容器盒子的ID不一样,至于声明多个变量只是为了在其他方法里面进行一些操作,我这里是暂时用不到,因为常用的控件都自带了,就不需要额外的方法去进行操作了

实际使用代码文章来源地址https://www.toymoban.com/news/detail-442209.html

//html
<div id="liveVideoDivHKMode" :class="[(this.current + 1)==1 ? '':'grid__' + (this.current + 1) + 'k']">
</div>
//js
//后端视频列表
list
let html = '';
for (let i = 0; i < list.length; i++) {
    html += `<div id="${list[i].pk}"></div>`  //id唯一值,看个人想用什么来做
    // let element = list[i];
    setTimeout(function () {
      let player1 = new EZUIKit.EZUIKitPlayer({
        id:list[i].pk,
        // autoplay: false,
        url:list[i].playUrl,
        accessToken:list[i].accessToken,
        // decoderPath: '../../static/js/mode',
        width: width,
        height: height,
        handleError: that.handleError(),
        handleSuccess:  that.handleSuccess(),
        themeData: themeData,
        audio:0,
      });
      that.ezvizHkVideoListPlay.push(player1)  //添加到一个数组里面方便后面关闭页面的时候关闭视频销毁
    }, 10)
    setTimeout(function () {
      document.getElementById("liveVideoDivHKMode").innerHTML = html;
    },50)
}

到了这里,关于vue+萤石云ezuikit.js播放直播流视频(声音自动关闭,添加控件,多个视频播放)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue实现video视频倍速播放、调节声音、拖动进度条、生成智能字幕等

    前言介绍 在现代化的网站中,视频播放已经成为了不可或缺的一部分。而对于视频播放的需求也越来越多样化,比如倍速播放、调节声音、拖动进度条、生成智能字幕等。本文将介绍如何使用Vue实现这些功能。 组件实现思路 首先,我们需要一个video标签来播放视频。然后,

    2024年02月11日
    浏览(45)
  • vue自动播放音频提示音(根据接口返回的状态值,提示声音。 code==0:播放成功音效; else 播放失败的音效)

    有时我们并不是想要在页面上放置一个播放音频的控件然后人为点击去播放,**而是通过一个图标点击事件或者js去控制它的播放暂停等操作,此时我们就要使用到Audio对象,**博主这里是Vue项目, 所以在data中使用的同一个Audio实例 项目需求:输入框输入完成 后续只需要通过切换

    2024年02月13日
    浏览(50)
  • 解决苹果Safari 浏览器下html不能自动播放声音和视频的问题-实时语音通话功能【唯一客服】...

    在实现我的客服系统中,实时语音通话功能的时候,如果想自动播放音视频流,在苹果设备上遇到了问题。 苹果浏览器(Safari)在默认情况下不允许声音在背景里自动播放。这是出于用户体验和隐私方面的考虑,避免在用户没有意识到的情况下自动播放声音。 解决办法是 iOS

    2024年02月12日
    浏览(132)
  • 【Unity声音与视频播放】播放声音视频、代码控制、UI播放视频

    闲谈: 游戏开发比普通软件开发难也是有原因的,第一 游戏功能需求变化多样内部逻辑交错纵横, 而软件相对固定,无非也就是点击跳转、数据存储 第二,游戏需要很多3D数学知识、物理知识,最起码得有高中物理的基础,力、向量、射线,除了这些数据存储一样不少 但是

    2024年02月19日
    浏览(41)
  • 【Vue】播放flv格式视频(flv.js视频播放器)

     图片来源:HTTP-FLV直播初探   github地址:GitHub - bilibili/flv.js: HTML5 FLV Player npm install flv.js --save 封装一个组件flvVideo hasAudio设置为true就不展示。。。不知道为啥~ home.vue 参考:Vue 中使用flv.js视频播放器

    2024年02月14日
    浏览(77)
  • vue+flv.js实现视频播放

    代码如下(示例): npm install --save flv.js  下载flv依赖 1.获取视频流地址并使用 2.有一个问题就是同时只能播放6个视频,超出6个视频会加载不出来,需要摧毁上一个视频,关闭视频的时候调用这个方法就好 3.还有一个就是,flv视频在谷歌浏览器播放,如果你离开页面他会暂

    2024年02月14日
    浏览(37)
  • vue项目中使用EasyPlayer.js播放视频

    项目中最近需要接摄像头的监控画面,一开始用了市面上一些别的插件,发现有些视频能播放,有些不能播放,最后发现是摄像头码流的问题,很多插件都无法支持h265的编码格式。但是现在市面上稍微新点的摄像头,都是h265的编码格式。 一、插件下载 npm install copy-webpack-

    2024年02月12日
    浏览(41)
  • vue 视频播放插件vue-video-player自定义样式、自动播放设置、设置一开始全屏播放视频

    1、背景 项目中有涉及视频播放的需求,并且UI设计了样式,与原生的视频video组件有差异,所以使用了vue-video-player插件,并对vue-video-player进行样式改造,自定义播放暂停按钮、全屏按钮、时间进度条样式等,自动播放设置、设置一开始全屏播放视频、监听全屏事件等。 2、效

    2024年02月05日
    浏览(49)
  • vue项目引入video.js播放不同格式视频

    很多小伙伴使用原生video标签播放服务器返回的地址的视频,但是会发现video标签对视频的格式限制很多,限制MP4,WebM,Ogg三种格式的视频格式。但是对于需求不限制于此,就需要引入插件库,这里引入第三方插件库video.js来实现更多的需求。注意:video.js也限制视频格式,可在

    2024年02月11日
    浏览(54)
  • vue+hls.js播放hls视频,踩坑记录

    需要在管理后台查看直播历史视频,历史视频为hls流视频,格式为 http://xxxxxxxx.m3u8 2.界面展示原型 1.查询调取改变接口列表数据,导致播放的视频未变化? 检查发现不同页面还是重复的hls组件实例,使每个页面的hls组件实例唯一性,不复用,给组件绑定key解决

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包