webrtc-client在浏览器使用c++推流程序崩溃nlohmann::detail::type_error错误修复

风格不统一 提交于 2021-02-07 15:38:22

我们介绍过很多TSINGSEE青犀视频开发团队开发WebRTC的过程,我们使用到了c开发。C不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

107.png

在开发WebRTC流媒体服务器时,WebRTC推流在使用浏览器拉流一段时间后,c++ 程序会导致崩溃,浏览器拉流端的视频也会停止播放,c++ 推流端在vs2017会进入到错误断点报以下内容:
“0xxxxxxx处(位于xxxxx.exe中)有未经处理的异常,异常:nlohmann::detail::type_error,位于内存位置0xxxxxxxxx处”。

81.png

看报错信息,是在使用webrtc json的库里出现的错误信息,这样就能确定一点,应该是某部分代码在调用webrtc json的库出现不一致的情况导致的错误。

我们在代码中找到WebRTCClient.cpp文件,打印一下服务端反馈的数据:

82.png

服务端反馈的错误数据格式如下:
{“data”:{“errCode”:-1,”errMsg”:”Router not found”,”id”:9,”method”:”createWebRtcTransport”}}。

83.png

知道问题所在,那么解决就变简单多了。我们只需要在添加一个简单的判断代码,判断字段是否存在即可。

84.png

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!