【问题标题】:Cefsharp 不加载在线 Flash 游戏
【发布时间】:2021-11-29 00:13:14
【问题描述】:

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

我的代码有问题吗?

【问题讨论】:

  • 尝试将您拥有的任何离线游戏(并且完美地离线运行)置于在线状态。如果您的系统出现问题,游戏将无法运行。如果它也可以在线运行,那么问题出在那个不想为你运行的游戏中。
  • 您可以在 DevTools 中检查错误,github.com/cefsharp/CefSharp/wiki/… 版本 86 是最后一个支持 flash 的,您可能想尝试更新的版本。

标签: flash cefsharp


【解决方案1】:

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

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

更详细的解释可以参考here

【讨论】:

    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2020-01-27
    • 2012-06-04
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    相关资源
    最近更新 更多