zoukankan      html  css  js  c++  java
  • 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播放器,并及时告知我们需求,我们定会在用户体验上做进一步的调整和完善。

  • 相关阅读:
    Owin
    C#不区分大小写的字符串替换(Replace)函数
    如何创建测试程序调试nginx数据结构
    一张脑图说清 Nginx 的主流程
    gdb常用命令记录
    nginx的configure流程
    c 编译器大全
    PHP 的 uniqid 函数产生的 id 真的是唯一的么?
    UUID那些事
    PHP 编码规范
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14848858.html
Copyright © 2011-2022 走看看