首页> 中国专利> 嵌入式浏览器的实现方法、装置、电子设备及存储介质

嵌入式浏览器的实现方法、装置、电子设备及存储介质

摘要

本申请提供一种嵌入式浏览器的实现方法、装置、电子设备及存储介质,该方法包括:当检测到第一控制指令时,创建嵌入式浏览器窗体,创建网页图层,并启动嵌入式浏览器进程;当检测到第二控制指令时,依据目标设备的地址信息以及登录信息,通过所述嵌入式浏览器进程访问所述目标设备的Web页面;通过所述视频控制设备的用户界面UI进程从网页画布共享内存中获取网页渲染图,并将所述网页渲染图填充到所述浏览器窗体内的网页图层上的更新区域。该方法可以在视频控制设备上实现嵌入式浏览器。

著录项

  • 公开/公告号CN113867985A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利号CN202111101114.1

  • 发明设计人 王俊玉;徐晓贤;周明;

    申请日2021-09-18

  • 分类号G06F9/54(20060101);G06F16/958(20190101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人杨春香

  • 地址 310051 浙江省杭州市滨江区阡陌路555号

  • 入库时间 2023-06-19 13:29:16

说明书

技术领域

本申请涉及安防技术领域,尤其涉及一种嵌入式浏览器的实现方法、装置、电子设备及存储介质。

背景技术

近年来,网络摄像机(Internet Protocol Camera,简称IPC)支持的功能越来越丰富。

网络视频录像机(Network Video Recorder,简称NVR)作为IPC的集成控制中心,配置方面需要实时跟IPC做配套,例如,当IPC由于软件升级而增加新的功能时,NVR为了能够实现针对该新增功能的配置,需要投入比较多的资源做本地界面和Web的功能开发支持,其实现效率较低,且成本较大。

发明内容

有鉴于此,本申请提供一种嵌入式浏览器的实现方法、装置、电子设备及存储介质。

根据本申请实施例的第一方面,提供一种嵌入式浏览器的实现方法,应用于视频控制设备,所述方法包括:

当检测到第一控制指令时,创建嵌入式浏览器窗体,创建网页图层,并启动嵌入式浏览器进程;其中,所述第一控制指令用于控制所述视频控制设备进入浏览器模式;

当检测到第二控制指令时,依据目标设备的地址信息以及登录信息,通过所述嵌入式浏览器进程访问所述目标设备的Web页面;其中,所述第二控制指令用于控制所述嵌入式浏览器进程访问所述目标设备的Web页面,所述目标设备为搭载有Web服务的设备;

通过所述视频控制设备的用户界面UI进程从网页画布共享内存中获取网页渲染图,并将所述网页渲染图填充到所述浏览器窗体内的网页图层上的更新区域;其中,所述网页画布共享内存由所述视频控制设备的UI进程与所述嵌入式浏览器进程之间共享,所述网页画布共享内存中的网页渲染图由所述嵌入式浏览器进程依据从所述目标设备的Web页面获取到的网页资源进行解析渲染生成并保存。

根据本申请实施例的第二方面,提供一种嵌入式浏览器的实现装置,应用于视频控制设备,所述装置包括:

检测单元,用于检测控制指令;

运行单元,用于当所述检测单元检测到第一控制指令时,创建嵌入式浏览器窗体,创建网页图层,并启动嵌入式浏览器进程;其中,所述第一控制指令用于控制所述视频控制设备进入浏览器模式;

访问单元,用于当所述检测单元检测到第二控制指令时,依据目标设备的地址信息以及登录信息,通过所述嵌入式浏览器进程访问所述目标设备的Web页面;其中,所述第二控制指令用于控制所述嵌入式浏览器进程访问所述目标设备的Web页面,所述目标设备为搭载有Web服务的设备;

处理单元,用于通过所述视频控制设备的用户界面UI进程从网页画布共享内存中获取网页渲染图,并将所述网页渲染图填充到所述浏览器窗体内的网页图层上的更新区域;其中,所述网页画布共享内存由所述视频控制设备的UI进程与所述嵌入式浏览器进程之间共享,所述网页画布共享内存中的网页渲染图由所述嵌入式浏览器进程依据从所述目标设备的Web页面获取到的网页资源进行解析渲染生成并保存。

根据本申请实施例的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一方面提供的方法。

根据本申请实施例的第四方面,提供一种存储介质,该存储介质内存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的方法。

根据本申请实施例的第五方面,提供一种计算机程序,该计算机程序存储于机器可读存储介质,并且当处理器执行该计算机程序时,促使处理器执行第一方面提供的方法。

本申请实施例的嵌入式浏览器的实现方法,通过以独立的进程运行嵌入式浏览器功能,并通过共享内存方式,实现了嵌入式浏览器进程与视频控制设备的UI进程之间的数据交互,从而,视频控制设备可以通过嵌入式浏览器进程访问目标设备的Web页面,并通过嵌入式浏览器进程对从目标设备的Web网页获取到的网页资源进行解析渲染后保存至共享内存,进而,依据共享内存中的数据将网页渲染图填充到嵌入式浏览器窗体内的网页图层上的更新区域,在视频控制设备上实现了嵌入式浏览器。

附图说明

图1是本申请实施例提供的一种嵌入式浏览器的实现方法的流程示意图;

图2是本申请实施例提供的一种浏览器模式下的视觉图层的示意图;

图3是本申请实施例提供的一种具体应用场景的架构示意图;

图4是本申请实施例提供的一种NVR设备的结构示意图;

图5是本申请实施例提供的一种NVR启动嵌入式浏览器的流程示意图;

图6是本申请实施例提供的一种嵌入式浏览器的实现装置的结构示意图;

图7是本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

请参见图1,为本申请实施例提供的一种嵌入式浏览器的实现方法的流程示意图,其中,该嵌入式浏览器的实现方法可以应用于视频控制设备,如NVR,如图1所示,该嵌入式浏览器的实现方法可以包括:

步骤S100、当检测到第一控制指令时,创建浏览器窗体,创建网页图层,并启动嵌入式浏览器进程;其中,第一控制指令用于控制视频控制设备进入浏览器模式。

本申请实施例中,当视频控制设备检测到用于控制视频控制设备进入浏览器模式的控制指令(本文中称为第一控制指令)时,可以运行嵌入式浏览器,即创建嵌入式浏览器窗体、创建网页图层,并启动嵌入式浏览器进程,进入浏览器模式。

示例性的,嵌入式浏览器进程可以包括但不限于用于与视频控制设备的UI(UserInterface,用户界面)进程进行交互的进程、用于拉取网页资源的进程,以及用于对网页资源进行解析渲染生成网页渲染图的进程等。

例如,嵌入式浏览器进程可以包括UI进程(UI process)、Network进程(Networkprocess)以及Web进程(Web process),其中,嵌入式浏览器的Web进程用于与视频控制设备的UI进程进行交互,Network进程用于依据指定URL拉取网页资源,Web进程用于对网页资源进行解析渲染,生成网页渲染图。

示例性的,网页图层为嵌入式浏览器窗体内用于显示信息的区域。

例如,视频控制设备在检测到针对视频控制设备的桌面上的嵌入式浏览器入口的点击指令时,可以确定检测到第一控制指令,并控制视频控制设备进入浏览器模式。

示例性的,该嵌入式浏览器入口可以为在视频控制设备的桌面上设置的一个用于选择“浏览器模式”的功能按键。

步骤S110、当检测到第二控制指令时,依据目标设备的地址信息以及登录信息,通过嵌入式浏览器进程访问目标视频前端设备的Web页面;其中,第二控制指令用于控制嵌入式浏览器进程访问目标视频前端设备的Web页面,目标设备为搭载有Web服务的设备。

本申请实施例中,目标设备并不特指某一固定的设备,而是可以指代任一视频控制设备能够获取到地址信息(如IP地址)和登录信息,且搭载有Web服务的设备,其可以包括但不限于视频控制设备的接入列表中的视频前端设备,以及接入列表之外的可通过搜索方式得到地址信息的指定前/后端设备。

示例性的,登录信息可以包括用户名和密码信息。

示例性的,指定前/后端设备可以包括NVR、网络存储/控制节点设备等后端设备,也可以包括IOT(Internet of Things,物联网)设备等。

本申请实施例中,当视频控制设备处于浏览器模式时,可以通过控制指令(本文中称为第二控制指令)控制嵌入式浏览器进程访问目标设备的Web页面。

示例性的,第二控制指令可以由用户选择视频控制设备的接入列表中的设备(该被选择的设备即为目标设备)触发,或者,可以由用户选择在线列表中的设备触发。

示例性的,在线列表中的设备为视频控制设备通过网络搜索的方式搜索得到地址信息,且可以进行Web页面访问的设备。

需要说明的是,对于接入列表中的设备,其登录信息可以预先存储在视频控制设备中;对于在线列表中的设备,其可以在用户选择设备后,通过弹窗的方式提示用户输入登录信息。

示例性的,当目标设备为视频控制设备的接入列表中的视频前端设备时,第二控制指令中可以携带目标设备的标识信息,如通道号,视频控制设备检测到第二控制指令时,可以依据标识信息,获取目标设备的地址信息以及登录信息,并通过嵌入式浏览器访问目标设备的Web页面。

当目标设备为视频控制设备的接入列表之外的设备时,第二控制指令中还可以携带目标设备的IP地址以及登录信息,视频控制设备可以依据第二控制指令中携带的目标设备的IP地址以及登录信息,访问目标设备的Web页面。

步骤S120、通过视频控制设备的UI进程从网页画布共享内存中获取网页渲染图,并将该网页渲染图填充到浏览器窗体内的网页图层上的更新区域;其中,网页画布共享内存由视频控制设备的UI进程与嵌入式浏览器进程之间共享,网页画布共享内存中的网页渲染图由嵌入式浏览器依据从目标设备的Web页面获取到的网页资源进行解析渲染生成并保存。

本申请实施例中,嵌入式浏览器进程与视频控制设备的UI进程之间通过共享内存(本文中称为网页画布共享内存)实现数据交互,实现视频控制设备对目标设备的Web页面的网页数据的显示。

示例性的,嵌入式浏览器进程依据目标设备的地址信息以及登录信息访问目标设备的Web页面时,可以将从目标设备的Web页面获取到的网页资源进行解析渲染,并将得到的网页渲染图保存到网页画布共享内存中。

视频控制设备的UI进程可以从网页画布共享内存中读取网页渲染图,将该网页渲染图填充到嵌入式浏览器窗体内的网页图层上的更新区域。

示例性的,该网页图层的更新区域可以包括网页图层的全部区域,或,网页图层中的指定区域。

示例性的,更新区域的位置信息可以由嵌入式浏览器进程通知给视频控制设备的UI进程。

可见,在图1所示方法流程中,通过以独立的进程运行嵌入式浏览器功能,并通过共享内存方式,实现了嵌入式浏览器进程与视频控制设备的UI进程之间的数据交互,从而,视频控制设备可以通过嵌入式浏览器进程访问目标设备的Web页面,并通过嵌入式浏览器进程对从目标设备的Web网页获取到的网页资源进行解析渲染后保存至共享内存(即网页画布共享内存),进而,依据共享内存中的数据将网页渲染图填充到嵌入式浏览器窗体内的网页图层上的更新区域,在视频控制设备上实现了嵌入式浏览器。

在一些实施例中,嵌入式浏览器进程与视频控制设备的UI进程之间通过socket通信连接实现进程交互。

示例性的,浏览器进程与视频控制设备的UI进程之间可以建立socket通信连接,通过该socket通信连接的方式实现嵌入式浏览器进程与视频控制设备的UI进程之间的进程间通信,从而实现嵌入式浏览器进程与视频控制设备之间的信令交互。

在一个示例中,步骤S110中,依据目标设备的地址信息以及登录信息,通过嵌入式浏览器进程访问所述目标设备的Web页面,包括:用于实现获取Web页面的网页资源进行渲染

依据目标视频前端设备的IP地址,生成目标URL;

通过视频控制设备的UI进程,利用该socket通信连接,将目标URL以及登录信息发送给嵌入式浏览器进程,以使嵌入式浏览器进程依据登录信息生成安全登录脚本,并依据目标URL以及安全登录脚本访问目标设备的Web页面。

示例性的,为了提高设备Web页面的访问效率,在对目标设备进行访问时,可以依据获取到的目标设备的登录信息,生成安全登录脚本(也可以称为安全脚本),并依据该安全登录脚本登录目标设备,通过安全登录脚本模拟用户登录目标设备的操作,实现一键免登陆访问目标设备的Web页面。

在一个示例中,步骤S100中,运行嵌入浏览器之后,还可以包括:

检测嵌入式浏览器窗体内的桌面事件;

依据嵌入式浏览器进程支持的协议,对检测到的嵌入式浏览器窗体内的桌面事件进行封装,并通过视频控制设备的UI进程,利用socket通信连接将封装后的事件发送给嵌入式浏览器进程,以使嵌入式浏览器进程对封装后的事件进行响应。

示例性的,在本申请实施例中,基于视频控制设备的UI进程与嵌入式浏览器进程之间的socket通信连接,视频控制设备的UI进程与嵌入式浏览器进程之间可以通过封装事件的方式进行信令交互。

当视频控制设备的UI进程检测到嵌入式浏览器窗体内的桌面事件时,可以依据嵌入式浏览器进程支持的数据格式(也可以称为数据类型),对检测到的桌面事件进行封装。

示例性的,检测到的嵌入式浏览器窗体内的桌面事件可以包括鼠标事件或软键盘事件,即操作焦点(如鼠标光标)在嵌入式浏览器窗体内的情况下检测到的鼠标事件或软键盘事件。

例如,视频控制设备的UI进程可以依据嵌入式桌面环境自定义WebEventFactory(网页事件工厂)的数据类型,将检测到嵌入式浏览器窗体内的桌面事件转换成适配webcore(一种排版引擎)的共享事件类型。

又例如,视频控制设备的UI进程可以对检测到的嵌入式浏览器窗体内的软键盘操作进行事件封装,与webkitwebview(Webkit网页视图)的inputMethodFilter(输入方法过滤器)绑定,实现嵌入式浏览器对软键盘的调用。

视频控制设备的UI进程可以通过其与嵌入式浏览器进程之间的socket通信连接,将封装后的事件(桌面事件)发送给嵌入式浏览器进程,嵌入式浏览器进程接收到封装后的事件时,可以对该封装后的事件进行响应。

作为一种示例,上述运行嵌入式浏览器之后,还可以包括:

当未检测到嵌入式浏览器窗体内的桌面事件的持续时长达到预设持续时长时,退出浏览器模式。

示例性的,视频控制设备针对嵌入式浏览器可以支持屏保功能,当视频控制设备的UI进程未检测到嵌入式浏览器窗体内的桌面事件的持续时长达到预设持续时长时,可以退出浏览器模式。

在一个示例中,本申请实施例提供的嵌入式浏览器的实现方法还可以包括:

当通过视频控制设备的UI进程,基于该socket通信连接,检测到嵌入式浏览器进程异常僵死或异常退出时,对此前运行的嵌入式浏览器进程进行回收,并重新启动嵌入式浏览器进程。

示例性的,视频控制设备的UI进程可以基于嵌入式浏览器进程与视频控制设备的UI进程之间的socket通信连接,对嵌入式浏览器进程的状态进行检测。

当视频控制设备的UI进程基于嵌入式浏览器进程与视频控制设备UI进程之间的socket通信连接,检测到嵌入式浏览器进程异常僵死或异常退出时,对此前运行的嵌入式浏览器进程进行回收,并重新启动浏览器进程。

在一些实施例中,当检测到第一控制指令时,上述创建嵌入式浏览器窗体,创建网页图层,并启动嵌入式浏览器进程之前,还可以包括:

限制视频控制设备的指定功能的运行,该指定功能包括视频控制设备不需借助嵌入式浏览器实现的功能中的部分或全部。

示例性的,考虑到当视频控制设备处于浏览器模式下时,视频控制设备不需借助嵌入式浏览器实现的功能通常不需要关注,因此,为了避免浏览器模式下,这些不需借助嵌入式浏览器实现的功能对资源的抢占,当视频控制设备UI进程检测到的控制视频控制设备进入浏览器模式的指令(即上述第一控制指令)时,视频控制设备可以限制指定功能的运行,例如,可以限制消耗内存较多(如超过预设内存占用率阈值)和/或占用CPU较多(如超过预设CPU内存)的功能运行,例如,抓图功能、报警功能等。

在一些实施例中,当视频控制设备处于浏览器模式时,视觉图层自顶向下依次包括:

图形组件图层、网页画布图层、菜单框架图层、以及视频图层;

其中,图形组件图层用于绘制和修改基础图形,并叠加显示在网页画布图层之上;

网页画布图层用于显示嵌入式浏览器进程对获取到的网页资源进行解析和渲染后得到的网页渲染图;

菜单框架图层用于显示嵌入式浏览器进程支持的功能对应的菜单选择列表,并在该菜单选择列表所在区域之外的预设区域之上叠加显示该网页画布图层;其中,该菜单选择列表中被选中的功能对应的显示界面以网页渲染图的方式展示在网页画布图层;

视频图层用于显示视频前端设备的视频预览画面,其示意图可以如图2所示。

示例性的,当所述嵌入式浏览器的显示界面被切换至智能事件布防配置界面时,菜单框架图层以及网页画布图层中与视频预览画面匹配的区域设置有指定透明度,以使所述视频预览画面对用户可见,即视频预览画面虽然处于嵌入式浏览器界面的视觉图像的最底层,但由于其上层的网页渲染图画面和菜单框架图层图画对应的区域设置有指定透明度,因此,该视频预览画面可以对用户可见。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。

请参见图3,为本申请实施例提供的一种具体应用场景的架构示意图,如图3所示,该应用场景可以包括作为网络视频监控系统的存储转发及微控制节点的NVR(即上述视频控制设备)、目标设备,如IPC、IOT设备(如门禁,报警主机),以及视频服务平台。其中:

NVR的核心功能为对前端摄像机采集的视频流进行存储、预览以及回放等,且支持对接入设备(如接入NVR的视频前端设备)进行配置管理,如网络参数、图像和音视频码流参数、智能事件布防以及存储管理等。

考虑到目标设备业务领域广,功能新增迭代快,而目标设备每增加一种新的功能,目标设备上搭载的web应用上需要新增该功能管理页面,同时NVR端需要对目标设备的新增功能支持管理配置。为了使NVR快速适配目标设备的功能变化,可以在NVR设备上实现浏览器功能,让用户或技术支持人员在NVR上通过浏览器工具就能访问目标设备的web应用,对目标设备进行相关业务的管理配置,如网络参数、图像和音视频码流参数、智能事件布防以及存储管理等进行管理配置。

在该实施例中,NVR设备上搭载的嵌入式应用基于嵌入式桌面系统实现,NVR通过HDMI(High Definition Multimedia Interface,高清多媒体接口)接口或VGA(VideoGraphics Array,视频图形阵列)接口接入显示器,通过USB(Universal Serial Bus,通用串行总线)接口接入鼠标,用户通过鼠标选择使用的功能,其可以包括但不限于对NVR设备接入的IPC进行预览,回放录像,查看报警信息,配置功能等。

为了使嵌入式浏览器更好地适配NVR设备的嵌入式桌面环境,以使用webkit2作为浏览器引擎的嵌入式浏览器为例,可以webkit2的基础上剥离gtk子库(一种开放源码图形库)及依赖gtk实现的UI交互层,与NVR的嵌入式桌面环境对接,在嵌入式浏览器进程与NVR的UI进程之间建立通信连接,并设置网页画布共享内存,嵌入式浏览器进程不再直接响应用户输入的嵌入式浏览器窗体内的桌面事件,而是由NVR的UI进程在检测到嵌入式浏览器窗体内的桌面事件时,通过NVR的UI进程与嵌入式浏览器进程之间的socket通信连接,将封装后的桌面事件发送给嵌入式浏览器进程,由嵌入式浏览器进程进行响应;同时,嵌入式浏览器进程进行网页资源解析渲染生成网页渲染图时,不再由嵌入式浏览器进程进行显示,而是由嵌入式浏览器进程将网页渲染图保存至网页画布共享内存,并由NVR的UI进程从网页画布共享内存中读取该网页渲染图,并在填充到浏览器窗体内的网页图层上的更新区域。

如图4所示,为本申请实施例提供的一种NVR设备的结构示意图,如图4所示,NVR设备可以包括:NVR的UI进程、嵌入式浏览器进程、解码进程。

NVR的UI进程与嵌入式浏览器进程之间,NVR的UI进程与解码进程之间,均通过socket进程通信的方式进行进程通信。

NVR的UI进程与嵌入式浏览器进程之间通过网页画布共享内存的方式实现网页渲染图的交互。

当NVR检测到用于指示NVR进入浏览器模式的控制指令(如上述第一控制指令)时,NVR可以运行嵌入式浏览器,启动浏览器进程,并创建浏览器窗体和网页图层,以UnixSocket通信和共享内存的方式,实现NVR的UI进程与嵌入式浏览器进程之间的双向交互。

NVR可以对检测到的嵌入式浏览器窗体内的鼠标事件、软键盘事件(即桌面事件)进行事件封装,根据NVR的嵌入式桌面环境自定义WebEventFactory的数据类型,转换成适配浏览器进程的共享事件类型,并通过NVR的UI进程,利用NVR的UI进程与嵌入式浏览器进程之间的socket通信连接,发送给嵌入式浏览器进程,由嵌入式浏览器进程进行响应。

以页面刷新为例,例如,用户通过鼠标切换嵌入式浏览器的显示界面。NVR检测到该鼠标事件时,可以将其转换为适配浏览器进程的共享事件类型,并通过NVR的UI进程发送给嵌入式浏览器进程。

当嵌入式浏览器进程检测到页面变化需求,嵌入式浏览器进程可以根据Web页面的尺寸创建进程间共享的位图内存,并将当前Web页面对应的网页渲染图数据存储在该位图内存;嵌入式浏览器进程可以遍历该位图内存,对需要更新的区域的数据进行更新。

嵌入式浏览器进程在完成数据更新时,可以通知NVR的UI进程更新BackingStrore(后备存储器)的网页画布共享内存。

NVR的UI进程以根据Web页面的尺寸生成等尺寸画布,并将第一位图内存中的网页渲染图数据拷贝至该画布,并依据该画布中的网页渲染图数据进行Web页面刷新。

当NVR需要通过嵌入式浏览器对指定IPC进行智能事件布防配置时,例如,NVR的UI进程检测到针对嵌入式浏览器的显示界面中的“事件”功能按钮的鼠标点击事件时,NVR可以通过事件封装的方式,将其转换为浏览器进程适配的数据类型,并通过NVR的UI进程发送给嵌入式浏览器进程。

嵌入式浏览器进程接收到该封装事件时,可以进行显示界面的刷新(具体实现参见上述实施例中的相关描述)。

当嵌入式浏览器的显示界面为智能事件布防配置界面时,嵌入式浏览器进程可以向NVR的UI进程发送视频区域叠加请求,以使NVR的UI进程依据视频区域叠加请求中携带的视频区域叠加位置以及视频区域大小为嵌入式浏览器进程分配匹配的视频区域。

示例性的,NVR的UI进程可以依据视频区域叠加位置以及视频区域大小为浏览器窗体以及网页图层中对应区域设置指定透明度,例如,以透明度100%为完全透明为例,该指定透明度可以为100%、90%或80%等;同时,NVR的UI进程可以向解码进程申请解码资源,对目标IPC的实时码流进行解码,并在指定区域进行播放,该指定区域为与视频区域叠加位置以及视频区域大小均匹配的区域,从而,用户可以查看目标IPC的预览画面。

可见,在NVR处于浏览器模式的情况下,视觉图层自顶向下依次包括:

图形组件图层、网页画布图层、菜单框架图层以及视频图层;

示例性的,图形组件图层用于绘制和修改基础图形,如矩形、三角形或其它不规则图形等,并叠加显示在网页画布图层之上。

网页画布图层用于显示嵌入式浏览器进程对获取到的网页资源进行解析和渲染后得到的网页渲染图;

菜单框架图层用于显示嵌入式浏览器进程支持的功能对应的菜单选择列表,并在该菜单选择列表所在区域之外的预设区域之上叠加显示网页画布图层;其中,该菜单选择列表中被选中的功能对应的显示界面以网页渲染图的方式展示在网页画布图层;

视频图层用于显示视频前端设备的视频预览画面。

示例性的,当NVR处于浏览器模式时,视频图层显示的视频预览画面可以为对用户不可见(被菜单框架图层以及网页画布图层遮盖)。

示例性的,当需要进行智能事件布防配置时,嵌入式浏览器进程可以通过向NVR的UI进程申请视频区域,NVR的UI进程可以依据视频区域的位置和大小,将网页画布图层和菜单框架图层的对应区域设置预设透明度,从而,视频预览画面可以对用户可见,且用户可以在视频预览画面所在区域处图形组件图层中绘制或编辑智能规则框,实现布防区域的配置。

下面对NVR启动浏览器流程进行说明。

请参见图5,为本申请实施例提供的一种NVR启动嵌入式浏览器的流程示意图,如图5所示,NVR启动嵌入式浏览器的流程可以包括:

1、运行嵌入式浏览器前,对NVR指定功能进行互斥设置,限制部分消耗内存和占用CPU较多的功能的启用。

2、嵌入式浏览器窗口初始化,如嵌入式浏览器窗体创建、网页图层创建,以及网页画布共享内存申请等。

3、嵌入式浏览器资源初始化,包括但不局限于资源解压至文件系统等方式。

示例性的,为了节省存储空间,当NVR设备未处于浏览器模式时,嵌入式浏览器的相关资源可以压缩后存储在磁盘中。当进入浏览器模式时,可以将压缩资源解压至文件系统。

4、嵌入式浏览器相关进程拉起,如UI process,Web process,Network process。

示例性的,可以先拉起UI process,在NVR的UI进程内创建与嵌入式浏览器的UIprocess进行socket通信相关的线程。

NVR的UI进程通知嵌入式浏览器的UI process初始化嵌入式浏览器,建立webview,绑定网页画布共享内存。

5、当需要进行Web页面访问时,NVR的UI进程可以将相关的JS脚本信息发送给嵌入式浏览器的UI process,通过UI process注入当前webpage。

例如,以安全登录脚本去模拟用户登录IPC的操作,实现一键免登陆访问IPC的web页面。

6、NVR的UI进程将待访问的Web页面的URL信息发送给嵌入式浏览器的UIprocess,通过UI process注入当前webpage。

7、嵌入式浏览器的Network process依据URL信息拉取网页资源,并通过嵌入式浏览器的Web process对拉取的网页资源进行解析渲染,嵌入式浏览器的UI process在网页画布共享内存中绘制网页渲染图,并将刷新消息发送到NVR的UI进程,通知更新区域,NVR的UI进程按更新区域读取网页画布共享内存中的网页渲染图。

8、NVR的UI进程将读取到的网页渲染图填充到嵌入式浏览器窗体内的网页图层上的更新区域。

9、当检测到嵌入式浏览器窗体内的桌面事件时,NVR对检测到的桌面事件进行事件封装,通过NVR的UI进程将封装后的事件发送给嵌入式浏览器的UI process,通过嵌入式浏览器的UI process将封装后的事件发送给Web process,Web process接收事件并响应。

示例性的,Web process接收到封装后的事件时,可以将网页渲染为执行对应事件之后的页面效果,并触发网页刷新。

例如,针对按钮点击事件,Web process收到封装后的事件时,可以把该按钮元素渲染成高亮的样子或者弹出窗口等等,其具体响应策略取决于Web页面的业务逻辑。

示例性的,NVR支持响应类插件功能,在网页中开辟视频播放画面,播放IPC实时视频预览画面,如为网页中对应区域设置指定透明度,并支持在视频预览画面上叠加图形组件图层中的绘制效果。

示例性的,NVR支持对嵌入式浏览器进程进行socket通信检测,当基于socket通信检测到嵌入式浏览器进程异常僵死或异常退出时,支持回收并重新启动嵌入式浏览器进程。

示例性的,NVR支持针对嵌入式浏览器的屏保功能,即当未检测到嵌入式浏览器窗体内的桌面事件的持续时长达到预设持续时长时,退出浏览器模式。

示例性的,当嵌入式浏览器进程正常退出,可以回收NVR的UI进程内通信相关的线程,并将嵌入式浏览器资源从文件系统中删除、网页画布共享内存回收,以及对NVR互斥功能(即上述指定功能)进行复原。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图6,为本申请实施例提供的一种嵌入式浏览器的实现装置的结构示意图,如图6所示,该嵌入式浏览器的实现装置可以包括:

检测单元610,用于检测控制指令;

运行单元620,用于当所述检测单元610检测到第一控制指令时,创建嵌入式浏览器窗体,创建网页图层,并启动嵌入式浏览器进程;其中,所述第一控制指令用于控制所述视频控制设备进入浏览器模式;

访问单元630,用于当所述检测单元610检测到第二控制指令时,依据目标设备的地址信息以及登录信息,通过所述嵌入式浏览器进程访问所述目标设备的Web页面;其中,所述第二控制指令用于控制所述嵌入式浏览器进程访问所述目标设备的Web页面,所述目标设备为搭载有Web服务的设备;

处理单元640,用于通过所述视频控制设备的UI进程从网页画布共享内存中获取网页渲染图,并将所述网页渲染图填充到所述浏览器窗体内的网页图层上的更新区域;其中,所述网页画布共享内存由所述视频控制设备的UI进程与所述嵌入式浏览器进程之间共享,所述网页画布共享内存中的网页渲染图由所述嵌入式浏览器进程依据从所述目标设备的Web页面获取到的网页资源进行解析渲染生成并保存。

在一些实施例中,所述嵌入式浏览器进程与所述视频控制设备的UI进程之间通过socket通信连接实现进程交互。

在一些实施例中,所述访问单元630依据目标设备的地址信息以及登录信息,通过所述嵌入式浏览器进程访问所述目标设备的Web页面,包括:

依据所述目标设备的IP地址,生成目标统一资源定位符URL;

通过所述视频控制设备的UI进程,利用所述socket通信连接,将所述目标URL以及所述登录信息发送给所述嵌入式浏览器进程,以使所述嵌入式浏览器进程依据所述登录信息生成安全登录脚本,并依据所述目标URL以及所述安全登录脚本访问所述目标设备的Web页面。

在一些实施例中,所述检测单元610,还用于检测所述嵌入式浏览器窗体内的桌面事件;

所述处理单元640,还用于依据所述嵌入式浏览器进程支持的协议,对检测到的所述嵌入式浏览器窗体的桌面事件进行封装,并通过所述视频控制设备的UI进程,利用所述socket通信连接将封装后的事件发送给所述嵌入式浏览器进程,以使所述嵌入式浏览器进程对所述封装后的事件进行响应。

在一些实施例中,所述处理单元640,还用于当所述检测单元610未检测到所述嵌入式浏览器窗体内的桌面事件的持续时长达到预设持续时长时,退出所述浏览器模式。

在一些实施例中,所述处理单元640,还用于当通过所述视频控制设备的UI进程,基于所述socket通信连接,检测到所述嵌入式浏览器进程异常僵死或异常退出时,对此前运行的所述嵌入式浏览器进程进行回收,并重新启动嵌入式浏览器进程。

在一些实施例中,所述处理单元640,还用于当所述检测单元610检测到第一控制指令时,限制所述视频控制设备的指定功能的运行,所述指定功能包括所述视频控制设备不需借助嵌入式浏览器实现的功能中的部分或全部。

在一些实施例中,当所述视频控制设备处于浏览器模式时,视觉图层自顶向下依次包括:

图形组件图层、网页画布图层、菜单框架图层、以及视频图层;

其中,所述图形组件图层用于绘制和修改基础图形,并叠加显示在网页画布图层之上;

所述网页画布图层用于显示嵌入式浏览器进程对获取到的网页资源进行解析和渲染后得到的网页渲染图;

所述菜单框架图层用于显示嵌入式浏览器进程支持的功能对应的菜单选择列表,并所述该菜单选择列表所在区域之外的预设区域之上叠加显示所述网页画布图层;其中,所述菜单选择列表中被选中的功能对应的显示界面以网页渲染图的方式展示在所述网页画布图层;

所述视频图层用于显示视频前端设备的视频预览画面

本申请实施例提供一种电子设备,包括处理器和存储器,其中,存储器存储有能够被所述处理器执行的机器可执行指令,处理器用于执行机器可执行指令,以实现上文描述的嵌入式浏览器的实现方法。

请参见图7,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器701、存储有机器可执行指令的存储器702。处理器701与存储器702可经由系统总线703通信。并且,通过读取并执行存储器702中与嵌入式浏览器的实现逻辑对应的机器可执行指令,处理器701可执行上文描述的嵌入式浏览器的实现方法。

本文中提到的存储器702可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

在一些实施例中,还提供了一种存储介质,如图7中的存储器702,该存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的嵌入式浏览器的实现方法。例如,所述存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。

本申请实施例还提供了一种计算机程序,存储于读存储介质,例如图7中的存储器702,并且当处理器执行该计算机程序时,促使处理器701执行上文中描述的嵌入式浏览器的实现方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号