Skip to main content
  • 10000+ Posts
  • 63,660 Replies
10000+ Posts
使用Flash player ActiveX控件加载SWF播放RTMP出现断言

开发环境:64位WIN10,Flash28,Visual Studio 2015概要:使用VS2015开发一个MFC程序,内嵌Flash Player ActiveX控件(Shockwave Flash Object)。播放RTMP流后,关闭MFC程序窗口时出现断言错误。详情:本人最近在开发一个MFC程序,需要在MFC程序中调用FlashActiveX控件,加载SWF文件,播放RTMP实时流。MFC程序使用的是.NET 4 Framework,Flash使用的28版本,SWF文件使用的是video-js-swf项目的SWF文件。开发流程是:①在MFC对话框资源页面中,使用类向导——“ActiveX控件中的MFC类”——选择“文件”——下行打开文件flash.ocx,输入框中出现“C:\Windows\System32\Macromed\Flash\Flash.ocx\1”——从接口列表选择“IShockwaveFlash”并添加到生成的类列表——点击完成。②在MFC对话框中右键“插入ActiveX控件”——选择“Shockwave Flash Object”——调整控件大小。③在刚插入的ActiveX控件,点击右键——“添加变量”——变量名填入“m_flash”。④在MFC对话框的CPP文件中,函数OnInitDialog中添加额外初始化代码:CString str = _T("D:\\video-js-swf\\dist\\video-js.swf");m_flash.LoadMovie(0, str);⑤添加播放RTMP的代码:(放到开始按钮)CString temp1 = _T(R"(<invoke name="vjs_setProperty" returntype="xml"><arguments><string>autoplay</string><true/></arguments></invoke>)");retStr = m_flash.CallFunction(temp1);CString temp2 = _T(R"(<invoke name="vjs_setProperty" returntype="xml">\<arguments><