前段時間,用CefSharp.WinForms寫了一個可以播放flash以及一些展示頁面的小程式,涉及到跨域訪問之類的問題。CefSharp.WinForms版本49.0.1。 剛開始挺順利,做到播放flash的時候各種黑屏,無法播放。先是回退32那個版本 用NPAPI解決的但是貌似32那個版本在客 ...
前段時間,用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(); }