LiveGBS GB28181监控平台中语音对讲 浏览器采集音频发送给摄像头的前端实现

背景分析

近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过视频掌握现场并进行指挥调度的需求逐步涌现,然而不同平台间缺乏统一的互通协议。在这样的产业背景下,基于终端标准化、平台互联互通的需求,GB/T28181应运而生。

如下浏览器采集音频源码摘自LiveGBS GB28181流媒体平台的前端web源码:https://github.com/livegbs/GB28181-Server

前端页面语音采集示例

function  talkStart(e) {
      if(this.recorder) {
        return;
      }
      var $target = $(e.currentTarget);
      LiveRecorder.get((rec, err) => {
        if(err) {
          alert(err);
          return
        }
        this.muted_bak = this.muted;
        this.$refs["player"].setMuted(true);
        $target.addClass("active");
        this.recorder = rec;
        this.recorder.start();
      }, {
        sampleBits: 16,
        sampleRate: 8000,
        pcmCallback: pcm => {
          if(this.bAudioSendError) return;
          var reader = new window.FileReader();
          reader.onloadend = () => {
            var base64 = reader.result;
            var base64 = base64.split(',')[1];
            this.bAudioSending = true;
            $.get("/api/v1/control/talk", {
              serial: this.serial,
              code: this.code,
              audio: base64,
            }).error(() => {
              if(!this.bAudioSendError) {
                this.bAudioSendError = true;
                setTimeout(() => {
                  this.bAudioSendError = false;
                }, 10000);
              }
            }).always(() => {
              this.bAudioSending = false;
            })
          }
          reader.readAsDataURL(pcm);
        }
      })
    }
    function talkStop() {
      if(this.recorder) {
        this.recorder.stop();
        this.recorder = null;
        $(this.$el).find(".fa-microphone.active, .ptz-talk.active").removeClass("active");
        this.$refs["player"].setMuted(this.muted_bak);
        return;
      }
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值