flash - 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");
但仍然得到相同的错误。
我的代码有问题吗?
解决方案
终于让它工作了。发生这种情况的原因是因为 Flash/PepperFlash 不信任 swf 文件,导致它阻止所有传入/传出连接。
要使其被闪存识别为受信任,您需要在其中放置一个文本 (.txt) 或配置 (.cfg) 文件C:\Users\{USER}\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust
(目录取决于您的操作系统和/或闪存版本)。里面的文本包含了 swf 目录所在的路径。它也可以是文件本身的路径。
更详细的解释可以参考这里。
推荐阅读
- c# - 在 c# 中获得掷骰子程序的问题
- java - 返回数组中以传递的初始值开头的字符串
- oracle - Oracle 11g 用虚拟列替换物理列
- azure - 将 Azure WebApp 从 S3 扩展到 Premium V2
- c# - 如何在 Xamarin.Forms 中加载下一个屏幕时更改 UI
- css - 图像悬停时的css下拉菜单
- swift - Swift:绘图开始时图像丢失纵横比
- c# - Azure Active Directory B2C 未反序列化 MVC 项目中的 httpContext.Session
- amazon-web-services - AWS Lambda 内部的 Parameter Store 请求超时
- google-cloud-pubsub - Pubsub 以稳定的速度拉动?