如何使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

posted @ 2015-11-05 11:22  超软毛毛虫  阅读(17185)  评论(7编辑  收藏  举报