前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyGBS平台出现语音播报重复现象,该如何解决?

EasyGBS平台出现语音播报重复现象,该如何解决?

原创
作者头像
TSINGSEE青犀视频
发布2022-09-16 17:34:58
2620
发布2022-09-16 17:34:58
举报
文章被收录于专栏:TSINGSEE青犀视频

国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格式。

有用户反馈,在EasyGBS平台中出现了语音播报错误的情况。除了第一次正常播报以外,后续的语音都是重复播报。收到用户反馈后,技术人员立即开展排查与解决,以下为解决步骤:

1)首先通过抓包分析,发现第一次发送时,上下级平台的音频一致,但是第二次上级平台发送的是新采集的音频,下级平台向设备发送的却是上次的音频;

2)随后排查代码发现,因为每次建立的udp链接读取过后,都放在了一个缓存的buf数组里,并且udp的监听链接也没有关闭,所以会导致数据错乱,出现发送上图数据的情况;

3)只需要添加以下代码:

代码语言:javascript
复制
Server.UacAudioUdpConn[key] = nil

并在每次获取到udp链接时,将本次使用的链接置空;

代码语言:javascript
复制
case audioOnOff := <-Server.UacAudioOnOff[key]:
				if dataConn != nil {
					Server.UacAudioUdpConn[key] = nil
					bufUDP := make([]byte, 102400)
					//err := dataConn.SetReadDeadline(time.Now().Add(time.Second * 5))
					//if err != nil {
					//	Server.UacAudioUdpConn[key].Close()
					//	log.Println("超时处理")
					//	return
					//}
					time.Sleep(time.Second * 1)
					for audioOnOff {
						n, _, err := dataConn.ReadFromUDP(bufUDP)
						if err != nil {
							//Server.UacAudioUdpConn[key].Close()
							log.Printf("udp read error, %v", err)
							continue
						}
						rtpBuf := make([]byte, n)
						copy(rtpBuf, bufUDP[:n])
						tempint, err := transportMS.UDPConn.Write(rtpBuf)
						if err != nil {
							log.Printf("发送rtperr : %s  ,tempint :%d", err, tempint)
							return
						}
						time.Sleep(80 * time.Millisecond)
						log.Println("发送tempint", tempint)
					}

				}

4)按上述方法修改后,每次发送的语音都和上级发送的语音一致了,语音播报重复的问题得到了解决。

除了提供API接口供用户调用、集成与二次开发,EasyGBS还能提供个性化定制,以满足用户的多样化功能需求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档