MFC对话框程序嵌入CEF并加入flash插件

CEF下载地址

我最终用的CEF版本:CEF3.3071 大小115M的那个

我用的CEF FLASH 插件(这个是发文时最新的):


我的工程源码:

到我的资源里面找MFCCEF工程源码


CEF3遇到的问题及解决方法

总的来说,遇到的各种问题:编译问题、flash过期问题、运行白屏、卡顿问题等等,都与CEF3的版本,以及是debug版还是Release版有莫大的关系。。。。。·

1. CEF源码编译问题
了解以及开发一般需要编译libcef_dll_wrapper和cefsimple两个工程,编译过程中会遇到各种错误,其中有几个一般的错误,网上都能搜到解决方法,但是,当你发现一些莫名其妙的错误,且网上搜不到解决方法的时候,试试下面这两种 方式:1)换编译器。我开始CMAKE生产VS2005工程然后编译CEF,总是报错,于是用CMAKE生成VS2010工程,VS2010编译顺利通过。 2)换CEF版本, http://opensource.spdotify.com/cefbuilds/index.html 这里可下载N多个CEF的版本,你会发现,同样用VS2010,有些版本能顺利编译,有些死活编译不成功。。。

2. 加载flash插件后,老是显示flash已过期,无法播放视频
解决方法:换CEF版本!!!,我开始用最新的CEF3,永远无法解决这个问题,于是,我回退到CEF3.3071,可以顺利播放视频

3. CEF成功嵌入MFC后,运行程序总是白屏
解决方法:如果你用的是Debug版本,换成Release版本就好了,否则。。。你永远都是白屏

4. 加载网页或者播放视频卡顿的问题
解决方法:又是换CEF版本!!!

5. CEF中禁止弹出新浏览窗口

6. CEF调用FLASH插件:
重载OnBeforeCommandLineProcessing,指定插件路径,以及版本号
void SimpleApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line)
{
char szPath[MAX_PATH] = {0};
GetModuleFileNameA(NULL,szPath,MAX_PATH);
int nLen = strlen(szPath);
for (int i=nLen-1; i>=0; --i)
{
if (szPath[i] == '\\')
{
break;
}
else
{
szPath[i] = '\0';
}
}
char szFlashPath[MAX_PATH] = {0};
sprintf(szFlashPath,"%splugins\\pepflashplayer32_27_0_0_187.dll",szPath);
//flash插件所在位置
//command_line->AppendSwitchWithValue("--ppapi-flash-path","D:\\MFCCEF\\MFCCEF\\Release\\plugins\\pepflashplayer32_27_0_0_187.dll");
command_line->AppendSwitchWithValue("--ppapi-flash-path",szFlashPath);
//flash插件的版本
command_line->AppendSwitchWithValue("--ppapi-flash-version", "27.0.0.187");
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值