我们知道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播放界面:
转载:https://blog.csdn.net/EasyGBS/article/details/109490382
查看评论