EasyPlayerPro Windows播放器读取xml配置文件中的特殊字符问题

问题被反馈

今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊…,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行;

问题复现

在EasyPlayerPro.xml中输入带用户名和密码(含有特殊字符&)的地址, 再运行EasyPlayerPro.exe;
果然,所有特殊字符&全都不见了,如下图:

EasyPlayerPro播放器

问题分析与解决

  • 找度娘,问tinyxml特殊字符;
  • 从sourceforge.net下载tinyxml的源码;
  • 使用vs2010打开tinyxml.sln;
  • solution中有4个project, 不用全部编译,只需编译tinyxml即可;
    具体方法:
打开tinyxmlparser.cpp,第528行, 将注释的*length=1;恢复启用即可;
//*length = 1;  改为   *length = 1;

const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding )
{
    ......

    // So it wasn't an entity, its unrecognized, or something like that.
    *value = *p;    // Don't put back the last one, since we return it!
    *length = 1;    // Leave unrecognized entities - this doesn't really work.
                    // Just writes strange XML.
    return p+1;
}

重新编译tinyxml;
将编译好的tinyxml.lib拷贝到EasyPlayerPro目录,运行EasyPlayerPro, 地址栏显示正常, 如下图:

EasyPlayerPro播放器

关于EasyPlayerPro播放器

EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!

EasyPlayerPro:https://github.com/EasyDSS/EasyPlayerPro

点击链接加入群【EasyPlayer & EasyPlayerPro】:544917793

技术与交流

获取更多信息

EasyDarwin开源流媒体服务器:www.EasyDarwin.org

EasyDSS商用流媒体解决方案:www.EasyDSS.com

EasyNVR无插件直播方案:www.EasyNVR.com

Copyright © EasyDarwin Team 2012-2017

EasyDarwin

原文地址:https://www.cnblogs.com/babosa/p/9217703.html