我们知道EasyGBS已经实现了语音对讲功能(国标GB28181流媒体服务器能否实现语音对讲),很多其他功能的开发都是基于语音对讲,因此我们对语音对讲的开发十分看重。
EasyGBS的远程控制平台的通讯功能,需要做到实时对讲,我们之前的语音对讲类似于微信发送语音消息,需要按一下讲话,然后松开时发送一段语音,无法做到实时对讲。
而我们现在需要实现的语音实时对讲是当开启语音时,通过发送websocket,当数据达到协定大小时,即自动发送过去。
通过触发麦克风按钮事件,发送websocket请求,当再次点击时,关闭语音。通讯实例:
methods: {
collectionAudio() {
let audio = $(".audioFont");
audio.removeClass("iconguanbiduijiang");
audio.addClass("iconduijiang");
this.recorder = new Recorder({
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
sampleRate: 8000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
numChannels: 1,
});
this.recorder.start().then(
() => {
// 开始录音
this.audioWS = new WebSocket(
`wss://${window.location.host}/api/v1/ws_talk/${this.DeviceID}/${this.ID}`
);
},
(error) => {
// 出错了
console.log(`${error.name} : ${error.message}`);
}
);
},
本文我们只是做了一个范例,大家可以简单参考一下。EasyGBS提供RTSP、RTMP、HTTP-FLV、HLS等多种协议流输出,并且对外提供服务器获取状态、信息,控制 HTTP API接口,欢迎大家来试用。
EasyGBS播放界面: