• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

我又何罪

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

关于车牌识别一体机的调研记录及总结

调查的目的是寻求兼容多浏览器内核的相机解决方案,记录了一些内容,对小白应该有些帮助

一、相关知识点

1,ActiveX控件

ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。 ActiveX 控件是用于互联网的很小的程序,有时称为插件程序。它们会允许播放动画,或帮助执行任务,如在 Microsoft Update 安装安全更新,因此可以增强您的浏览体验。

2,COM组件、ActiveX、OCX区别

COM 组件就是一组接口的集合,实现了 IDispath 接口的 COM 组件叫做 自动化组件。在自动化组件的基础上,在实现规定的接口就称为 ActiveX 组件,Ocx 是 Activex 的文件载体

一般来讲 ,一个 ActiveX 对应一个 Ocx 文件, 如果愿意, 一个Ocx 文件也可以包含多个 ActiveX  控件 相当于ActiveX

3,<object> 标签

定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。

<object> 标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF 以及 Flash。 object 的初衷是取代 img 和 applet 元素。不过由于漏洞以及缺乏浏览浏览器支持,这一点并未实现。 浏览器的对象支持有赖于对象类型。不幸的是,主流浏览器都使用不同的代码来加载相同的对象类型。 而幸运的是,object 对象提供了解决方案。如果未显示 object 元素,就会执行位于 <object> 和 </object> 之间的代码。通过这种方式,我们能够嵌套多个 object 元素(每个对应一个浏览器) object标签不在dom文档流里面,浏览器在解析的时候先把object放置在最上层,然后依次解析dom文档,放在下层,并且在这里使用z-index是无效的,会造成object内容区域遮住其它内容的问题

二、关于车牌识别一体机ocx控件的说明

此控件设备厂家提供的调用相机的程序,可以基于该控件二次开发,对于不同厂商,此控件会有不同,所以如果使用不同厂商提供的相机,要注册安装的控件也不同

三、.非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内核兼容插件

结果:相关插件都不起作用

总结:微软独有的东西,其它浏览器都不支持

四、JavaScript调用OCX

1、注册(安装)他们提供的控件,不是通过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(){
                    //1、获取摄像头区域对象
                    var ocx = document.getElementById('inax0');
                    //2、打开摄像头,依次配置ip,端口,用户名,密码
                    var hader= ocx.BRLPRClientOpen ("192.168.2.208", 30000, "admin", "admin");
                    //3、播放视频
                    var result=ocx.BRLPRClientStartPlay(hader,0);
                    //额外说明,不同厂商基本是2、3步骤调用的方法名不同,默认端口也不同
                }
            </script>
        </body>
</html>

注意:要使用正确的classid,并设置ie浏览器支持active控件

参考:https://www.cnblogs.com/techdreaming/p/7387925.html

五、整体总结
1、能支持active控件的只有ie浏览器,连他的自家兄弟edge也不行,测试结果是必须ie8以上
2、没有办法能让非ie浏览器支持active控件.
3、active控件是由具体的相机厂家提供的,我们可以根据控件做二次开发,但是不能跳过控件调用相机
所以,基于active控件调用的相机,暂时无法做到多浏览器的兼容,必须使用非active控件调用的相机

六、参考

车牌识别一体机OCX控件使用文档

https://wenku.baidu.com/view/14a249e3482fb4daa48d4bbc.html

车牌识别一体机配置指南:

https://wenku.baidu.com/view/63767e81b9f67c1cfad6195f312b3169a551ea56.html

posted on 2018-09-20 11:58  我又何罪  阅读(1065)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3