如何使CEF支持Flash
方法一:复制Chrome浏览器下的pepperFlash,通过cef命令行参数设置路径。
public Form1() { InitializeComponent(); InitializeChromium(); } private void InitializeChromium() { ChromiumWebBrowser.OnBeforeCfxInitialize += ChromiumWebBrowser_OnBeforeCfxInitialize; ChromiumWebBrowser.OnBeforeCommandLineProcessing += ChromiumWebBrowser_OnBeforeCommandLineProcessing; ChromiumWebBrowser.Initialize(); ChromiumWebBrowser wb = new ChromiumWebBrowser(); wb.Dock = DockStyle.Fill; wb.Parent = this; wb.LoadUrl("chrome://version"); } void ChromiumWebBrowser_OnBeforeCommandLineProcessing(Chromium.Event.CfxOnBeforeCommandLineProcessingEventArgs e) { e.CommandLine.AppendSwitch("--disable-web-security");//关闭同源策略 e.CommandLine.AppendSwitchWithValue("ppapi-flash-version", "18.0.0.209");//PepperFlash\manifest.json中的version e.CommandLine.AppendSwitchWithValue("ppapi-flash-path", "PepperFlash\\pepflashplayer.dll"); } void ChromiumWebBrowser_OnBeforeCfxInitialize(Chromium.WebBrowser.Event.OnBeforeCfxInitializeEventArgs e) { e.Settings.CachePath = "Session"; e.Settings.Locale = "zh-CN"; }
方法二:通过命令行参数设置cef使用系统安装的flash
void ChromiumWebBrowser_OnBeforeCommandLineProcessing(Chromium.Event.CfxOnBeforeCommandLineProcessingEventArgs e) { e.CommandLine.AppendSwitch("--disable-web-security");//关闭同源策略 e.CommandLine.AppendSwitch("--enable-system-flash");//使用系统flash }
Chromium has removed support for NPAPI and consequently CEF no longer supports loading of the NPAPI Flash plugin. To support loading of the Pepper (PPAPI) Flash plugin the following implementation must be brought over from Chrome:
In the browser process:
- ChromeContentClient::AddPepperPlugins -- Locates the Flash plugin library. In CEF this will be implemented via CefContentClient::AddPepperPlugins.
- ChromeContentBrowserClientPluginsPart::DidCreatePpapiPlugin -- Creates the ChromeBrowserPepperHostFactory that is responsible for the browser side of PPAPI message routing. In CEF this will be implemented via CefContentBrowserClient::DidCreatePpapiPlugin.
- ChromeBrowserPepperHostFactory::CreateResourceHost -- Creates the hosts for individual pieces of Flash-related functionality (e.g. PepperFlashBrowserHost, PepperFlashClipboardMessageFilter, PepperFlashDRMHost).
In the renderer process:
- ChromeContentRendererClient::RenderFrameCreated -- Creates the ChromeRendererPepperHostFactory (via the per-RenderFrame PepperHelper) that is responsible for the renderer side of PPAPI message routing. In CEF this will be implemented via CefContentRendererClient::RenderFrameCreated.
- ChromeRendererPepperHostFactory::CreateResourceHost -- Creates the hosts for individual pieces of Flash-related functionality (e.g. PepperFlashRendererHost, PepperFlashFullscreenHost, PepperFlashMenuHost, PepperFlashFontFileHost, PepperFlashDRMRendererHost).
参考:https://bitbucket.org/chromiumembedded/cef/issues/1586/add-pepper-flash-plugin-support
本文来自博客园,作者:古道轻风,转载请注明原文链接:https://www.cnblogs.com/88223100/p/how_to_add_flash_support_in_cef.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2011-03-22 即将消失的几种商业模式:再也见不到的传奇