調查的目的是尋求兼容多瀏覽器內核的相機解決方案,記錄了一些內容,對小白應該有些幫助html
1、相關知識點web
1,ActiveX控件瀏覽器
ActiveX是Microsoft對於一系列策略性面向對象程序技術和工具的稱呼,其中主要的技術是組件對象模型(COM)。在有目錄和其它支持的網絡中,COM變成了分佈式COM(DCOM)。 ActiveX 控件是用於互聯網的很小的程序,有時稱爲插件程序。它們會容許播放動畫,或幫助執行任務,如在 Microsoft Update 安裝安全更新,所以能夠加強您的瀏覽體驗。安全
2,COM組件、ActiveX、OCX區別網絡
COM 組件就是一組接口的集合,實現了 IDispath 接口的 COM 組件叫作 自動化組件。在自動化組件的基礎上,在實現規定的接口就稱爲 ActiveX 組件,Ocx 是 Activex 的文件載體app
通常來說 ,一個 ActiveX 對應一個 Ocx 文件, 若是願意, 一個Ocx 文件也能夠包含多個 ActiveX 控件 至關於ActiveX框架
3,<object> 標籤dom
定義一個嵌入的對象。請使用此元素向您的 XHTML 頁面添加多媒體。此元素容許您規定插入 HTML 文檔中的對象的數據和參數,以及可用來顯示和操做數據的代碼。分佈式
<object> 標籤用於包含對象,好比圖像、音頻、視頻、Java applets、ActiveX、PDF 以及 Flash。 object 的初衷是取代 img 和 applet 元素。不過因爲漏洞以及缺少瀏覽瀏覽器支持,這一點並未實現。 瀏覽器的對象支持有賴於對象類型。不幸的是,主流瀏覽器都使用不一樣的代碼來加載相同的對象類型。 而幸運的是,object 對象提供瞭解決方案。若是未顯示 object 元素,就會執行位於 <object> 和 </object> 之間的代碼。經過這種方式,咱們可以嵌套多個 object 元素(每一個對應一個瀏覽器) object標籤不在dom文檔流裏面,瀏覽器在解析的時候先把object放置在最上層,而後依次解析dom文檔,放在下層,而且在這裏使用z-index是無效的,會形成object內容區域遮住其它內容的問題工具
2、關於車牌識別一體機ocx控件的說明
此控件設備廠家提供的調用相機的程序,能夠基於該控件二次開發,對於不一樣廠商,此控件會有不一樣,因此若是使用不一樣廠商提供的相機,要註冊安裝的控件也不一樣
3、.非ie瀏覽器如何支持activex控件
1,開發相關控件
基於 IE 的 插件 和 基於 webkit 的插件機制是不一樣的 , IE插件 遵循的是 ACTIVEX 標準, webkit族(FF,OPERA,CHROME,SAFARI) 是採用的 NPAPI 的標準 。
若是你要兼容多種瀏覽器 ,那麼就要在你的 DLL 中公開 AX 和 NPAPI 的接口, AX dll 有四個標準接口,NPAPI 好像也有四個 ,你在你DLL 分別實現就能夠了 ,codeproject 上有相關的文章,N多年前的 。 所幸,如今不用那麼麻煩了 ,有好事者開發了 firebreath 框架,一次編寫就能夠實現兩種方式的接口。 不過有個壞消息, CHROME 對NPAPI 的支持 是到 2015年9月, 也就是說 你用 NPAPI 或者 firebreath 編寫的控件,在9月份以後就不能夠在 CHROME 中運行了 。
參考:https://blog.csdn.net/xuebing1995/article/details/78189701?locationNum=5&fps=1
https://blog.csdn.net/johnson2008t/article/details/46126605
PPAPI插件開發指南:http://www.cnblogs.com/fangkm/p/6628425.html
結果:相關資料少,技術難度大,並且開發結果未知
2,安裝相關插件
1)支持ocx的插件
https://blog.csdn.net/wangchao1988ok/article/details/45193489
https://www.cnblogs.com/lidabo/p/3580643.html
2)支持ie內核兼容插件
結果:相關插件都不起做用
總結:微軟獨有的東西,其它瀏覽器都不支持
4、JavaScript調用OCX
一、註冊(安裝)他們提供的控件,不是經過ie輸入IP訪問相機時提示要下載安裝的控件,那是他們的配置相機的客戶端, 而是他們發給咱們的文件
2,、打開註冊表,查找 「BRLPRClientCtrl」 控件的classid
HTML調用demo
<html> <head> <meta charset="UTF-8"> <title>demo</title> </head> <body> <div style="text-align:center;" > <div> <button onclick="load()">click</button> <object style="width: 400px;height: 400px;" classid="CLSID:3DBC7290-457B-48A4-8DCD-ADECC11E1228" id="inax0" > </object> </div> </div> <script> function load(){ //一、獲取攝像頭區域對象 var ocx = document.getElementById('inax0'); //二、打開攝像頭,依次配置ip,端口,用戶名,密碼 var hader= ocx.BRLPRClientOpen ("192.168.2.208", 30000, "admin", "admin"); //三、播放視頻 var result=ocx.BRLPRClientStartPlay(hader,0); //額外說明,不一樣廠商基本是二、3步驟調用的方法名不一樣,默認端口也不一樣 } </script> </body> </html>
注意:要使用正確的classid,並設置ie瀏覽器支持active控件
參考:https://www.cnblogs.com/techdreaming/p/7387925.html
5、總體總結
一、能支持active控件的只有ie瀏覽器,連他的自家兄弟edge也不行,測試結果是必須ie8以上
二、沒有辦法能讓非ie瀏覽器支持active控件.
三、active控件是由具體的相機廠家提供的,咱們能夠根據控件作二次開發,可是不能跳過控件調用相機
因此,基於active控件調用的相機,暫時沒法作到多瀏覽器的兼容,必須使用非active控件調用的相機
6、參考
車牌識別一體機OCX控件使用文檔
https://wenku.baidu.com/view/14a249e3482fb4daa48d4bbc.html
車牌識別一體機配置指南:
https://wenku.baidu.com/view/63767e81b9f67c1cfad6195f312b3169a551ea56.html