如何使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 }
参考:https://bitbucket.org/chromiumembedded/cef/issues/1586/add-pepper-flash-plugin-support