如何使CEF支持Flash

时间:2021-12-27 01:38:59

方法一:复制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