zoukankan      html  css  js  c++  java
  • 如何使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");//PepperFlashmanifest.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:

    1. ChromeContentClient::AddPepperPlugins -- Locates the Flash plugin library. In CEF this will be implemented via CefContentClient::AddPepperPlugins.
    2. 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.
    3. ChromeBrowserPepperHostFactory::CreateResourceHost -- Creates the hosts for individual pieces of Flash-related functionality (e.g. PepperFlashBrowserHost, PepperFlashClipboardMessageFilter, PepperFlashDRMHost).

    In the renderer process:

    1. 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.
    2. 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

  • 相关阅读:
    最简单的as调用js
    搜集API
    Northwind SQL Code
    玩Gmail :)
    ASP.NET操作服务 注意权限
    在Windows 7下安装Oracle 11g的解决方法
    windows 7 下安装了 oracle p6810189_10204_Win32
    ClientScript遇到UpdatePanel
    sql server 2005 ,恢复xp_cmdshell的办法
    SQL查询表、视图、存储过程、函数的创建和变更时间
  • 原文地址:https://www.cnblogs.com/88223100/p/how_to_add_flash_support_in_cef.html
Copyright © 2011-2022 走看看