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.
我正在创建一个个人应用程序,可以 运行 任何在线和离线 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.