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

  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM