EasyPlayerPro Windows播放器读取xml配置文件中的特殊字符问题
问题被反馈
今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊…,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行;
问题复现
在EasyPlayerPro.xml中输入带用户名和密码(含有特殊字符&)的地址, 再运行EasyPlayerPro.exe;
果然,所有特殊字符&全都不见了,如下图:
问题分析与解决
- 找度娘,问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是一款全功能的流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!
EasyPlayerPro:https://github.com/EasyDSS/EasyPlayerPro
点击链接加入群【EasyPlayer & EasyPlayerPro】:544917793
技术与交流
QQ交流群:544917793
获取更多信息
EasyDarwin开源流媒体服务器:www.EasyDarwin.org
EasyDSS商用流媒体解决方案:www.EasyDSS.com
EasyNVR无插件直播方案:www.EasyNVR.com
Copyright © EasyDarwin Team 2012-2017