H265视频播放器项目EasyPlayer-RTSP-WIN异常终止原因分析

EasyPlayer播放器系列项目可以说是目前市面中一款非常开放的播放器项目,用户可以根据自己的需求调用接口或者进行开发,实用性强,稳定性也足够优越。上周我们遇到一个用户在使用EasyPlayer-RTSP-WIN的时候报异常终止,程序无法正常运行,如下图:

于是给该用户远程调试了一次,现在将过程记录下来。

1、既然程序已经正常运行,说明肯定不是VC环境等问题导致的异常终止;
2、用户在输入RTSP流地址后,点击播放按钮的时候出现的异常终止,说明异常肯定是在预览函数后面触发的,于是带着疑问单步调试程序,最终定位发现是数组长度定义短了,导致无法完整拷贝字符串。

下面是具体代码处:
定位在OnBnClickedButtonPreview()函数中,如下图中,用户原本输入的URL为:

rtsp://60.208.113.69:1192/37166000581314000001#18?DstCode=01&IsExDomain=1&ServiceType=1&ClientType=0&StreamID=1&SrcTP=2&DstTP=2&SrcPP=0&DstPP=1&MediaTransMode=0&BroadcastType=0&SV=3&Token=gAx2g2e2ki7ybRzFOrV7MnshjMtlb9Wzhy4L7lEeR4I=&ExNat=1&DomainCode=f0ad2e06cb4946d9a67a6f96beb6f5dd&UserId=1&

但是单独调试到此位置后wszURL已经变成:

rtsp://60.208.113.69:1192/37166000581314000001#18?DstCode=01&IsExDomain=1&ServiceType=1&ClientType=0&StreamID=1&SrcTP=2&DstTP=2&

在设计之初,我们并未考虑到URL会出现这么长的情况,已经超过128位,于是重新定义:wchar_t wszURL[512] = {0,};重新跟踪代码,发现到上诉位置时,URL已经被全部拷贝,接着运行下去也再无报错,并且成功预览出图像:

在该问题中,URL地址过长的问题已经得到了优化,在此我们也欢迎更多的朋友在自己的运行环境中测试EasyPlayer播放器,并及时告知我们需求,我们定会在用户体验上做进一步的调整和完善。

posted on 2021-06-04 11:26  TSINGSEE  阅读(180)  评论(0编辑  收藏  举报