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");
}