前段时间,用CefSharp.WinForms写了一个可以播放flash以及一些展示页面的小程序,涉及到跨域访问之类的问题。CefSharp.WinForms版本49.0.1。
刚开始挺顺利,做到播放flash的时候各种黑屏,无法播放。先是回退32那个版本 用NPAPI解决的但是貌似32那个版本在客户机各种 10分钟后各种死程序,没办法只能硬着头皮找方法解决。
最后设置读取pepflashplayer.dll播放falsh 下面是我这个版本的配置代码。
//打开静态地址 string strMenu = System.Windows.Forms.Application.StartupPath; //pepflashplayerDLL 地址 string flashPath = strMenu + "\\plugins\\pepflashplayer32_21_0_0_182.dll"; CefSettings set = new CefSettings(); set.CachePath = "cache"; //开启ppapi-flash set.CefCommandLineArgs["enable-system-flash"] = "1"; set.CefCommandLineArgs.Add("ppapi-flash-version", "21.0.0.182"); //插入地址 set.CefCommandLineArgs.Add("ppapi-flash-path", flashPath); //启用配置 CefSharp.Cef.Initialize(set);
最后贴一个完整运行的代码
public FromIndex() { InitializeComponent(); InitBrowser(); } public void InitBrowser() { //打开静态地址 string strMenu = System.Windows.Forms.Application.StartupPath; //pepflashplayerDLL 地址 string flashPath = strMenu + "\\plugins\\pepflashplayer32_21_0_0_182.dll"; CefSettings set = new CefSettings(); set.CachePath = "cache"; //开启ppapi-flash set.CefCommandLineArgs["enable-system-flash"] = "1"; set.CefCommandLineArgs.Add("ppapi-flash-version", "21.0.0.182"); //插入地址 set.CefCommandLineArgs.Add("ppapi-flash-path", flashPath); //启用配置 CefSharp.Cef.Initialize(set); var htmlDidr = "\\Files\\LargeScreen\\index.htm"; ChromiumWebBrowser browser = new ChromiumWebBrowser(""); BrowserSettings bset = new BrowserSettings(); bset.Plugins = CefState.Enabled; //关于跨域限制 bset.WebSecurity = CefState.Disabled; browser.BrowserSettings = bset; //打开网页 browser.Load(strMenu + htmlDidr); //绑定JS browser.RegisterJsObject("callbackObj", new CallbackObjectForJs()); this.Controls.Add(browser); browser.Dock = DockStyle.Fill; browser.Update(); }