Cefsharp 不加载在线 flash 游戏

Cefsharp doesn't load online flash games

我正在创建一个个人应用程序,可以 运行 任何在线和离线 Flash 游戏。我一直在使用带有 Pepperflash 插件的 CefSharp v75.1.143。我尝试了不同的离线 flash 游戏,它按预期运行。但是当我尝试玩在线 Flash 游戏时,特别是 Adventure Quest Worlds,游戏卡在 100%。我找不到原因,因为 debug.log 根本没有显示任何错误。

我一直使用的代码是:

private void InitializeChromium()
        {
            CefSettings settings = new CefSettings();
            string PepPath = Path.Combine(Directory.GetCurrentDirectory(), @"resources\plugins\pepflashplayer.dll");
            string PepVer = "29.0.0.171";

            settings.CefCommandLineArgs.Add("ppapi-flash-path", PepPath);
            settings.CefCommandLineArgs.Add("ppapi-flash-version", PepVer);
            settings.CefCommandLineArgs["plugin-policy"] = "allow";

            Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
            chromeBrowser = new ChromiumWebBrowser(@"aq.com/game"); //The game that I'm testing

            Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;

        }

我尝试将 pepflashplayer 更改为旧版本,但它不起作用。 我也尝试添加 settings.CefCommandLineArgs.Add("disable-web-security", "1");settings.CefCommandLineArgs.Add("allow-file-acccess-from-files", "1"); 但仍然出现相同的错误。

我的代码有问题吗?

终于成功了。发生这种情况的原因是 Flash/PepperFlash 不信任 swf 文件,导致它阻止所有 incoming/outgoing 连接。

要让它被 flash 识别为受信任的,您需要在 C:\Users\{USER}\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust 中放置一个文本 (.txt) 或配置 (.cfg) 文件(目录取决于您的 os and/or Flash 版本)。文本中包含 swf 目录所在的路径。它也可以是文件本身的路径。

更详细的解释可以参考here.