首页 > 解决方案 > Cefsharp 不加载在线 Flash 游戏

问题描述

我正在创建一个可以在线和离线运行任何 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");但仍然得到相同的错误。

我的代码有问题吗?

标签: flashcefsharp

解决方案


终于让它工作了。发生这种情况的原因是因为 Flash/PepperFlash 不信任 swf 文件,导致它阻止所有传入/传出连接。

要使其被闪存识别为受信任,您需要在其中放置一个文本 (.txt) 或配置 (.cfg) 文件C:\Users\{USER}\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust(目录取决于您的操作系统和/或闪存版本)。里面的文本包含了 swf 目录所在的路径。它也可以是文件本身的路径。

更详细的解释可以参考这里


推荐阅读