CN114079732B - 摄像头控制方法及装置、电子设备、存储介质 - Google Patents
摄像头控制方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114079732B CN114079732B CN202010846008.5A CN202010846008A CN114079732B CN 114079732 B CN114079732 B CN 114079732B CN 202010846008 A CN202010846008 A CN 202010846008A CN 114079732 B CN114079732 B CN 114079732B
- Authority
- CN
- China
- Prior art keywords
- camera
- data
- shared memory
- management process
- data consumption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
- G06Q20/40145—Biometric identity checks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/66—Remote control of cameras or camera parts, e.g. by remote control devices
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Studio Devices (AREA)
Abstract
本申请的实施例揭示了一种摄像头控制方法、装置、电子设备以及计算机可读存储介质。该方法包括:根据第一数据消费进程发起的接口调用请求,控制摄像头向所述摄像头管理进程推送摄像头采集的数据;将所述摄像头采集的数据传输至所述第一数据消费进程;在所述第一数据消费进程释放对所述摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉所述第一数据消费进程的调用;在释放掉所述第一数据消费进程的调用之后,响应所述第二数据消费进程的调用,以将所述摄像头采集的数据传输至所述第二数据消费进程。本申请实施例的技术方案能够避免出现摄像头资源冲突导致的交易异常的问题。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种摄像头控制方法及装置、电子设备和计算机可读存储介质。
背景技术
在聚合支付场景中,一台支付设备上同时运行多个支付厂商开发的支付软件,各个支付软件都需要根据摄像头采集的支付信息进行交易支付,摄像头采集的支付信息例如可以是人脸图像,或者支付二维码图像。由于各个支付软件对摄像头资源的管理不一致,导致在某个支付软件未及时释放摄像头资源,其它的支付软件都不能使用摄像头获取支付信息,从而影响正常的支付交易。
因此,如何优化聚合支付场景中各个支付厂商开发的支付软件对于摄像头资源的管理,是现有技术中仍有待解决的技术问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种摄像头控制方法及装置,以及提供了一种电子设备和计算机可读存储介质。
其中,本申请所采用的技术方案为:
一种摄像头控制方法,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述方法应用于所述摄像头管理进程,所述方法包括:根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据;将所述摄像头数据传输至所述第一数据消费进程;在所述第一数据消费进程释放对所述摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉所述第一数据消费进程的调用;在释放掉所述第一数据消费进程的调用之后,响应所述第二数据消费进程的调用,以将所述摄像头数据传输至所述第二数据消费进程。
一种摄像头控制装置,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述装置包括:第一调用响应模块,用于根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据;数据传输模块,用于将所述摄像头数据传输至所述第一数据消费进程;调用释放模块,用于在所述第一数据消费进程释放对所述摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉所述第一数据消费进程的调用;第二调用响应模块,用于在释放掉所述第一数据消费进程的调用之后,响应所述第二数据消费进程的调用,以将所述摄像头数据传输至所述第二数据消费进程。
在一示例性实施例中,数据传输模块包括:数据存储单元,用于根据所述摄像头管理进程创建的共享内存文件对应的文件描述符,将所述摄像头推送的摄像头数据存入所述共享内存文件中;通知发送单元,用于向所述第一数据消费进程发送通知消息,以使所述第一数据消费进程根据所述通知消息中含有的所述文件描述符从所述共享内存文件中读取所述摄像头数据。
在另一示例性实施例中,数据存储单元包括:状态确定子单元,用于确定多个共享内存文件中处于空闲状态的共享内存文件;数据存入子单元,用于根据所述处于空闲状态的共享内存文件对应的文件描述符,将所述摄像头推送的摄像头数据存入所述共享内存文件中;存储量确定子单元,用于当所述处于空闲状态的共享内存文件中的数据存储量达到预设存储量时,将所述摄像头推送的摄像头数据存入所述多个共享内存文件中处于空闲状态的另一共享内存文件中。
在另一示例性实施例中,状态确定子单元包括:第一文件确定子单元,用于确定上一次存入摄像头数据的第一共享内存文件;第二文件确定子单元,用于在所述多个共享内存文件中确定除所述第一共享内存文件以外的第二共享内存文件,将所述第二共享内存文件作为所述处于空闲状态的共享内存文件。
在另一示例性实施例中,所述多个共享内存文件通过同步锁进程进行状态管理,第二文件确定子单元包括:同步锁信息获取子单元,用于基于所述同步锁进程获取所述第二共享内存文件对应的同步锁信息;同步锁信息判定子单元,用于在所述同步锁信息指示所述数据消费进程当前未在所述第二共享内存文件中执行数据读取操作时,将所述第二共享内存文件作为所述处于空闲状态的共享内存文件。
在另一示例性实施例中,该装置还包括:鉴权信息提取模块,用于提取所述第一数据消费进程发起的接口调用请求中携带的鉴权信息,根据所述鉴权信息对所述第一数据消费进程进行身份鉴权;身份验证模块,用于在所述第一数据消费进程通过身份鉴权时,执行根据所述第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据的步骤。
在另一示例性实施例中,该装置还包括摄像头控制模块,所述摄像头控制模块用于根据任一数据消费进程发送的摄像头开启指令,控制开启所述摄像头。
在另一示例性实施例中,该装置还包括固件升级控制模块,所述固件升级控制模块用于根据检测到的摄像头固件升级指令,控制所述摄像头进行固件升级。
另一种摄像头控制方法,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述方法应用于所述数据消费进程,所述方法包括:向所述摄像头管理进程发送接口调用请求,所述接口调用请求用于请求获取所述摄像头采集的摄像头数据;接收所述摄像头管理进程针对所述接口调用请求返回的摄像头数据;在所述数据消费进程未释放对于所述摄像头管理进程的调用之前,若接收到所述摄像头管理进程发送的调用终止通知消息,则终止调用所述摄像头管理进程提供的调用接口。
另一种摄像头控制装置,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述装置包括:调用请求模块,用于向所述摄像头管理进程发送接口调用请求,所述接口调用请求用于请求获取所述摄像头采集的摄像头数据;数据接收模块,用于接收所述摄像头管理进程针对所述接口调用请求返回的摄像头数据;调用终止模块,用于在所述数据消费进程未释放对于所述摄像头管理进程的调用之前,若接收到所述摄像头管理进程发送的调用终止通知消息,则终止调用所述摄像头管理进程提供的调用接口。
在另一示例性实施例中,所述数据接收模块包括:通知消息接收单元,用于接收所述摄像头管理进程针对所述接口调用请求返回的通知消息,所述通知消息是所述摄像头管理进程将所述摄像头推送的摄像头数据存入共享内存文件后所发出的;通知消息响应单元,用于根据所述通知消息中含有的文件描述符,从所述文件描述符所指示的共享内存文件中读取所述摄像头数据用于。
在另一示例性实施例中,所述通知消息响应单元包括文件定位子单元,所述文件定位子单元用于根据所述通知消息中含有的文件描述符,在所述内存空间中定位所述共享内存文件,若检测到所述共享内存文件处于空闲状态,则读取所述共享内存文件中存储的摄像头数据。
在另一示例性实施例中,共享内存文件通过同步锁进程进行状态管理,所述通知消息响应单元还包括同步锁信息判别子单元,所述同步锁信息判别子单元用于根据同步锁进程获取共享内存文件对应的同步锁信息,若同步锁信息指示摄像头管理进程当前未在所述共享内存文件中执行数据写入操作,则确定共享内存文件处于空闲状态。
一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的摄像头控制方法。
一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的摄像头控制方法。
在上述技术方案中,提供了一个摄像头管理进程对摄像头资源进行统一管理,多个数据消费进程即为多个支付厂商开发的支付软件,摄像头管理进程与多个数据消费进程相互独立,每个数据消费进程都通过摄像头管理进程提供的调用接口向数据消费进程请求获取摄像头采集的摄像头数据,进而根据摄像头数据进行交易支付。由于摄像头资源是由摄像头管理进程统一管理的,在某个数据消费进程未及时释放摄像头资源的情况下,若有另一数据消费进程向摄像头管理进程请求获取摄像头资源,则由摄像头管理进程控制强制释放摄像头资源,然后将摄像头资源交由另一数据消费进程使用,保证了每个数据消费进程均可以正常进行支付交易,提升了聚合支付的支付体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是一示例性实施例示出的一种应用于交易支付终端的聚合支付***的架构图;
图2是根据一示例性实施例提供的一种摄像头控制方法的流程图;
图3是图2所示实施例中的步骤130在一个示例性实施例中的流程图;
图4是图3所示实施例中的步骤131在一个示例性实施例中的流程图;
图5是一示例性的摄像头数据传输过程的示意图;
图6是根据另一示例性实施例提供的一种摄像头控制方法的流程图;
图7是根据一示例性实施例示出的一种摄像头控制装置的框图;
图8是根据另一示例性实施例示出的一种摄像头控制装置的框图;
图9是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请的描述中,除非另有说明,“多个”的含义是至少两个。
请参阅图1,图1是一示例性实施例示出的一种应用于交易支付终端的聚合支付***的架构图。
如图1所示,该交易支付终端具有摄像头30,该聚合支付***包括摄像头管理进程20和多个数据消费进程10。其中,摄像头管理进程20中集成了摄像头SDK(SoftwareDevelopment Kit,软件开发工具包),以对摄像头资源进行统一管理;数据消费进程10是指支付厂商开发的支付软件的运行进程,数据消费进程10需要根据摄像头30采集的摄像头数据进行交易支付。
摄像头管理进程20与数据消费进程10各自独立运行,并且摄像头管理进程20向数据消费进程10提供由调用接口,数据消费进程10只需要进行简单的接口调用即可与摄像头管理进程20通信,以向摄像头管理进程20请求获取摄像头数据,并基于摄像头管理进程20返回的摄像头数据进行交易支付。
在图1所示的聚合支付***中,若某个数据消费进程10向摄像头管理进程20请求获取摄像头数据,摄像头管理进程20则将摄像头30所采集的摄像头数据传输给该数据消费进程10;当数据消费进程10完成交易支付后,告知摄像头管理进程20不再需要摄像头数据,摄像头管理进程20则终止向该数据消费进程10传输摄像头数据,由此释放该数据消费进程10对于摄像头资源的占用。如果另一个数据消费进程10向摄像头采集进程请求获取摄像头数据,则进行同样的操作。
如果数据消费进程10在完成交易支付后未及时释放摄像头资源,而另一数据消费进程10也需要获取摄像头数据以进程交易支付,由于摄像头资源是由摄像头管理进程20进行管理的,摄像头管理进程20可以主动释放该数据消费进程10对于摄像头资源的占用,并及时切换向另一数据消费进程10传输摄像头数据,从而避免出现摄像头资源冲突导致的交易异常的问题。
并且由于摄像头资源是由摄像头管理进程20进行管理的,摄像头30的开启、启流、停流、关闭等操作均由摄像头管理进程20统一控制执行,在一个数据消费进程10终止获取摄像头数据后,不必关闭摄像头30,也不必停止摄像头30的启流,当另一数据消费进程10请求获取摄像头数据时,摄像头管理进程20将摄像头数据切换发送至另一数据消费进程10即可,能够避免摄像头30根据各个数据消费进程10的单独控制而频繁地启开、启流、停流以及关闭操作,优化了摄像头30的使用逻辑和性能,也节省了摄像头30的功耗。
由于数据消费进程10与摄像头管理进程20相互独立,数据消费进程10的运行不受摄像头管理进程20的影响,只在需要进行交易支付是通过调用摄像头管理进程20提供的调用接口获取摄像头数据,因此各个支付厂商可以独立进行支付软件的开发,加速了支付软件的开发速度;同时,摄像头30的固件升级过程也不需要各个数据消费进程10的参与,提升了摄像头30的固件升级效率,从而能够提升整个聚合支付***的支付体验。
请参阅图2,图2是根据一示例性实施例提供的一种摄像头控制方法的流程图。该摄像头由摄像头管理进程进行管理,并且摄像头管理进程向多个数据消费进程提供调用接口,使得任意一个数据消费进程都可以通过调用摄像头管理进程提供的调用接口,以向摄像头管理进程请求获取摄像头所采集的摄像头数据。
该方法可以适用于图1所示的聚合支付***,并由图1所示聚合支付***中示出的摄像头管理进程具体执行。当然,该方法还可以适用于具有图1所示架构的其它软件***,并由这些软件***中设有的摄像头管理进程具体执行,本处不对此进行限制。
如图2所示,在一示例性实施例中,该方法可以包括如步骤:
步骤110,根据第一数据消费进程发起的接口调用请求,控制摄像头向摄像头管理进程推送摄像头数据。
首先需要说明的是,本实施例中第一数据消费进程是指多个数据消费进程中的任意一个数据消费进程,第一数据消费进程向摄像头管理进程发起的接口调用请求,是第一数据消费进程通过调用摄像头管理进程提供的调用接口所实现的,以向摄像头管理进程请求获取摄像头所采集的摄像头数据。
摄像头管理进程根据第一数据消费进程发送的接口调用请求,控制摄像头向摄像头管理进程推送摄像头数据的过程是指,摄像头管理进程控制集成在摄像头管理进程中的摄像头SDK在摄像头实时采集图像画面后,将实时采集的图像画面编码为摄像头数据,并将编码得到的摄像头数据推送至摄像头管理进程。基于此过程,摄像头管理进程即可获取到摄像头实时采集的摄像头数据。
示例性的,在聚合支付的应用场景中,摄像头数据可以是人脸图像数据,使得各个数据消费进程根据摄像头采集的人脸图像进行交易支付,从而实现人脸聚合支付;摄像头数据也可以是支付二维码图像数据,各个数据消费进程根据摄像头采集的支付二维码图像进行交易支付,实现基于支付二维码的聚合支付,本实施例不对摄像头数据的具体类型进行限制。
在一些实施例中,为保证交易支付的安全性,第一数据消费进程发起的接口调用请求中还含有第一数据消费进程对应的鉴权信息,摄像头管理进程在接收到第一数据消费进程发起的接口调用请求之后,需要提取第一数据消费进程发起的接口调用请求中携带的鉴权信息,以根据提取到的鉴权信息对第一数据消费进程进行身份鉴权,若第一数据消费进程通过身份鉴权,表示摄像头管理进程为第一数据消费进程传输摄像头数据的过程是安全的,摄像头管理进程才响应于第一数据消费进程所发起的接口调用请求,执行步骤110的步骤。
第一数据消费进程发起的接口调用请求中携带的鉴权信息具体可以包括第一数据消费进程的身份信息,例如,该身份信息可以包括支付厂商的厂商编码、第一数据消费进程中登录的用户账号及账号密码等信息,摄像头管理进程根据这些身份信息验证第一数据消费进程的身份安全性。
该鉴权信息还可以是第一数据消费进程第一次与摄像头管理进程通信时,摄像头管理进程对第一数据消费进程进行身份鉴权通过后向第一数据消费进程提供的身份令牌,摄像头管理进程基于第一数据消费进程发起的接口调用请求中含有的身份令牌,直接确定第一数据消费进程是安全的。
步骤130,将摄像头数据传输至第一数据消费进程。
摄像头管理进程在获取到摄像头向其推送的摄像头数据之后,将摄像头数据传输给第一数据消费进程,以使得第一数据消费进程根据摄像头管理进程传输的摄像头数据进行相应处理。
示例性的,在聚合支付的应用场景下,第一数据消费进程从摄像头管理进程传输的摄像头数据中提取人脸图像或者支付二维码图像,并根据提取得到的人脸图像或者支付二维码图像进行交易支付。而在其它的应用场景中,第一数据消费进程根据摄像头管理进程传输的摄像头数据进行相应处理,以实现第一数据消费进程想要实现的功能,本实施例不对第一数据消费进程针对摄像头数据的处理过程进行限制。
步骤150,在第一数据消费进程释放对摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉第一数据消费进程的调用。
其中,第一数据消费进程释放对摄像头管理进程的调用是指,第一数据消费进程主动终止获取摄像头数据,例如第一数据消费进程向摄像头管理进程发送摄像头数据终止获取指令,以指示摄像头管理进程终止向第一数据消费进程传输摄像头数据。
在第一数据消费进程释放对摄像头管理进程的调用之前,摄像头资源被第一数据消费进程占用,其它的数据消费进程无法获取到摄像头数据,以保证第一数据消费进程中进行的摄像头数据处理过程不受影响。
在通常情况下,第一数据消费进程在完成摄像头数据的处理之后,会主动向摄像头管理进程发送摄像头数据终止获取指令,以释放掉对摄像头管理进程的调用,保证其它的数据消费进程也能够获取待摄像头采集的摄像头数据。但是,如果第一数据消费进程未及时释放其对于所述摄像头管理进程的调用,第二数据消费进程又向摄像头管理进程发起了接口调用请求,摄像头管理进程则释放掉第一数据消费进程的调用,也即,摄像头管理进程主动终止向第一数据消费进程传输摄像头数据。
示例性的,摄像头管理进程可以向第一数据消费进程发送调用终止通知消息,同时终止向第一数据消费进程传输摄像头数据,第一数据消费进程则根据调用终止通知消息终止获取摄像头数据,由此释放掉第一数据消费进程的调用。当然,摄像头管理进程也可以直接终止向第一数据消费进程传输摄像头数据,第一数据消费进程同样无法获取摄像头数据,从而释放掉第一数据消费进程的调用,本实施例不对此摄像头管理进程释放第一数据消费进程的调用的具体方式进行限制。
需要说明的是,在本实施例中,第二数据消费进程可以是多个数据消费进程中除第一数据消费进程之外的其它任意一个数据消费进程,本实施例也不对第二数据消费进程作具体限制。
步骤170,在释放掉第一数据消费进程的调用之后,响应第二数据消费进程的调用,以将摄像头数据传输至第二数据消费进程。
摄像头管理进程在释放掉第一数据消费进程的调用之后,摄像头还是持续向其推送摄像头数据的,因此摄像头管理进程可以及时响应第二数据消费进程的调用,将摄像头推送的摄像头数据切换发送至第二数据消费进程,以使得第二数据消费进程根据获取到的摄像头数据,实现自身需要实现的功能。
由此,基于本实施例提供的方法,任一数据消费进程在获取摄像头数据后,如果未及时释放摄像头资源,而另一数据消费进程也需要获取摄像头数据,摄像头管理进程可以主动释放当前数据消费进程对于摄像头资源的占用,并及时切换向另一数据消费进程传输摄像头数据,从而能够避免出现摄像头资源冲突导致的交易异常的问题。
在另外的实施例中,摄像头管理进程还可以根据任一数据消费进程发送的摄像头开启指令控制开启摄像头。摄像头在开启之后,则可以进行实时图像画面的采集,摄像头管理进程根据接收到的接口调用请求可以直接控制摄像头向其推送摄像头数据。
若长时间没有数据消费指令向摄像头管理进程请求获取摄像头数据,或者某个数据消费进程向摄像头管理进程发送了摄像头关闭指令,摄像头管理进程则控制关闭摄像头。
也即是说,本实施例中摄像头的开启、启流、停流、关闭等操作均由摄像头管理进程统一控制,在一个数据消费进程终止获取摄像头数据后,不必关闭摄像头,也不必停止摄像头的启流,当另一数据消费进程请求获取摄像头数据时,摄像头管理进程将摄像头数据切换发送至另一数据消费进程即可,能够避免摄像头根据各个数据消费进程的单独控制而频繁地启开、启流、停流以及关闭操作,优化了摄像头的使用逻辑和性能,也节省了摄像头的功耗。
并且摄像头的固件升级过程也不需要各个数据消费进程的参与,摄像头管理进程根据检测到的摄像头固件升级指令,控制摄像头进行固件升级。摄像头在完成固件升级后,任一个数据消费进程都可以向摄像头管理进程请求获取固件升级后的摄像头所采集的摄像头数据。其中,摄像头固件升级指令可以是摄像头管理进程自身触发生成的。
由此,本实施例也使得摄像头的固件升级成为可实现的功能,并且摄像头固件升级由摄像头管理进程独立控制,不需要各个数据消费进程的参与,使得摄像头固件升级的效率也较高。
图3是图2所示实施例中的步骤130在一个示例性实施例中的流程图。如图3所示,在一示例性实施例中,摄像头管理进程将摄像头数据传输至第一数据消费进程的过程可以包括如下步骤:
步骤131,根据摄像头管理进程创建的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中。
在本实施例中,考虑到摄像头管理进程于数据消费进程之间跨进程传输的摄像头数据的数据量较大,导致摄像头数据在传输过程中容易受设备硬件、网络等因素的影响,容易出现摄像头数据无法正常传输至数据消费进程的问题,例如在聚合支付的应用场景下,支付软件在获取摄像头数据进行交易支付的过程中容易出现交易异常的问题。
基于此,在本实施例中,摄像头管理进程预先在内存空间中创建共享内存文件,并相应得到共享内存文件对应的文件描述符,文件描述符也即是共享内存文件的文件标识。
在摄像头向摄像头管理进程推送摄像头数据之后,摄像头管理进程根据共享内存文件对应的文件描述符,将摄像头数据存入共享内存中。第一数据消费进程则从共享内存文件中读取摄像头管理进程存入的摄像头数据,由此将摄像头数据传输至第一数据消费进程。
步骤133,向第一数据消费进程发送通知消息,以使第一数据消费进程根据通知消息中含有的文件描述符从共享内存文件中读取摄像头数据。
摄像头管理进程将摄像头数据存入共享文件之后,向第一数据消费进程发送通知消息,以通知第一数据消费进程根据通知消息中含有的文件描述符从共享内存文件中读取摄像头数据,由此实现将摄像头数据从摄像头管理进程传输至第一数据消费进程。
因此,在本实施例中,摄像头数据在传输过程中避免在两个进程之间直接进行传输,摄像头管理进程独立执行向内存空间写入摄像头数据的过程,数据消费进程独立执行从内存空间中读取摄像头数据的过程。
如果摄像头管理进程在向共享内存文件存入摄像头数据时受到设备硬件、网络等因素的影响导致数据存入失败,则可以重新向共享文件写入摄像头数据,直至摄像头数据成功写入共享文件中;如果数据消费进程在从共享内存文件中读取摄像头数据时受到设备硬件、网络等因素的影响导致数据读取失败,也可以重新从共享文件中读取摄像头数据,直至成功读取到摄像头数据,由此避免摄像头数据在传输过程中受到设备硬件、网络等因素的影响。
在另一些实施例中,考虑到共享内存文件的大小是有限的,需要将摄像头实时采集的摄像头数据以流数据的形式多次存储,例如分别将摄像头采集的每帧图像画面作为一组摄像头数据存入共享内存文件中;并且当摄像头管理进程和第一数据消费进程均在共享文件中执行摄像头数据的写入及读取操作时,会存在摄像头管理进程和第一数据消费进程同时操作内存空间中的同一内存区域的可能,导致摄像头数据在传输过程中出错,本实施例中的摄像头管理进程预先在内存空间中创建多个共享内存文件,通过多个共享内存文件实现摄像头数据的传输。
如图4所示,在一示例性实施例中,摄像头管理进程具体通过如下的步骤将摄像头数据存入共享内存文件中:
步骤210,确定多个共享内存文件中处于空闲状态的共享内存文件。
首先需要说明的是,共享内存文件处于共享状态是指当前摄像头管理进程既没有向共享内存文件中执行数据写入操作,也没有数据消费进程在共享内存文件中执行数据读取操作。
由此可知,处于空闲状态的共享内存文件可能是空文件,也可能存储有摄像头管理进程在此前写入的摄像头数据。
在一个实施例中,考虑到摄像头管理进程在将一组摄像头数据存入第一共享内存文件之后,会通知数据消费进程获取第一共享内存文件中存入的摄像头数据,当摄像头管理进程在存入下一组摄像头数据时,数据消费进程正在从第一共享内存文件中读取摄像头数据,因此摄像头管理进程不会再将摄像头数据存入第一共享内存文件中。
因此,摄像头管理进程可以确定上一次存入摄像头数据的第一共享内存文件,然后在多个共享内存文件中确定除第一共享内存文件以外的第二共享内存文件,即能够将第二共享内存文件作为处于空闲状态的共享内存文件。
而在另外的实施例中,考虑到数据消费进程也可能出现网络延迟等问题,导致并不是每个第二共享文件均处于空闲状态,例如:
摄像头管理进程预先创建有三个共享内存文件,并将第一组摄像头数据存入共享内存文件1中,然后通知数据消费进程从共享内存1中读取摄像头数据,然后将第二组摄像头数据写入共享内存文件2中,同时通知数消费进程从共享内存文件2中读取摄像头数据。在摄像头管理进程进行第三组摄像头数据的存储时,共享内存文件1和共享内存文件3原本均可作为处于空闲状态下的第二共享文件写入第三组摄像头数据,但由于摄像头管理进程向数据消费进程发送通知消息的过程存在延时,导致数据消费进程此时正响应于摄像头管理进程第一次发送的通知消息而读取共享内存文件1中的摄像头数据,因此共享内存文件A此时并不处于空闲状态。
由此,本实施例设置同步锁进程来对多个共享内存文件进行状态管理,该同步锁进程能够监视到每个共享内存文件在每个时刻是否正在被其它进程操作。
具体的,摄像头管理进程在多个共享内存文件中确定除第一共享内存文件以外的第二共享内存文件之后,还基于同步锁进程获取第二共享内存文件对应的同步锁信息,若同步锁信息指示数据消费进程当前未在第二共享内存文件中执行数据读取操作,则将第二共享内存文件作为处于空闲状态的共享内存文件。因此,基于本实施例提供的方法,摄像头管理进程可以更加准确地定位处于空闲状态的共享内存文件。
需要说明的是,数据消费进程在根据文件描述符从相应的共享内存文件中读取摄像头数据时,也需要基于同步锁进程确定共享内存文件处于空闲状态之后才执行数据读取操作,从而确保两个进程不会同时操作内存空间中的同一内存区域。
步骤230,根据处于空闲状态的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中。
如前所述的,摄像头管理进程根据处于空闲状态的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中,以使得后续数据消费进程能够从该共享内存文件中读取摄像头数据。
步骤250,当处于空闲状态的共享内存文件中的数据存储量达到预设存储量时,将摄像头推送的摄像头数据存入多个共享内存文件中处于空闲状态的另一共享内存文件中。
在本实施例中,共享内存文件中的数据存储量是指摄像头管理进程存入的摄像头数据的数据量,预设存储量可以是指一组或多组摄像头数据,每组摄像头数据可以是摄像头采集的一帧或者多帧图像画面对应的摄像头数,本实施例不对此进行限制。
当处于空闲状态的共享内存文件中的数据存储量达到预设存储量时,标识摄像头管理进程已完成一次摄像头数据的存储,则将摄像头推送的摄像头数据存入多个共享内存文件中处于空闲状态的另一共享内存文件中。具体来说,是将下一次预设数据量的摄像头数据存入通过前述过程确定的第二共享内存文件中。
此外,为便于理解以上提出的摄像头管理进程向第一数据消费进程传输摄像头数据的过程,本实施例还以一个示例性实施方式来对此过程进行具体描述。
如图5所示,摄像头管理进程创建了共享文件1和共享文件2,每个共享文件均通过同步锁进程进行状态管理。在01时刻,摄像头管理进程基于同步锁进程确定共享内存1处于空闲状态,因此将摄像头推送的摄像头数据写入共享内存1中;数据消费进程基于同步锁进程确定共享内存2处于空闲状态后,从共享内存文件2中读取摄像头管理进程在00时刻在共享内存文件2中存入的摄像头数据。在02时刻,摄像头管理进程基于同步锁进程确定共享内存2处于空闲状态,因此将摄像头推送的摄像头数据写入共享内存2中;数据消费进程基于同步锁进程确定共享内存1处于空闲状态后,从共享内存文件1中读取摄像头管理进程在01时刻在共享内存文件1中存入的摄像头数据。
由此,基于图5所示例的摄像头数据传输过程,确保了摄像头管理进程和数据消费进程分开操作不同的共享内存文件,从而完成摄像头数据的写入和读取。
由此,本实施例提供的方法通过将摄像头实时采集的摄像头数据以流数据的形式在多个共享内存文件之间进行多次存储,不仅可以适用于共享内存文件的大小有限的情况,还能够避免摄像头管理进程和第一数据消费进程同时操作内存空间中的同一内存区域导致摄像头数据在传输过程中出错的问题,保证了摄像头管理进程向第一数据消费进程传输摄像头数据的稳定性。
本申请还提供了另一种摄像头控制方法,该方法可以适用于图1所示的聚合支付***,并由图1所示聚合支付***中示出的数据消费进程具体执行。该方法也可以适用于具有图1所示架构的其它软件***,并由这些软件***中设有的数据消费进程具体执行,本实施例也不对此进行限制。
如图6所示,在一示例性实施例中,该方法可以包括如下步骤:
步骤310,向摄像头管理进程发送接口调用请求,接口调用请求用于请求获取摄像头采集的摄像头数据。
如前述实施例中描述的,数据消费进程向摄像头管理进程发起的接口调用请求,是数据消费进程通过调用摄像头管理进程提供的调用接口实现的,以向摄像头管理进程请求获取摄像头所采集的摄像头数据。
在一些实施例中,数据消费进程发起的接口调用请求中还含有数据消费进程对应的鉴权信息,以使得摄像头管理进程在接收到数据消费进程发起的接口调用请求之后,需要根据接口调用请求中含有的鉴权信息对数据消费进程进行身份鉴权,若数据消费进程通过身份鉴权,表示摄像头管理进程为数据消费进程传输摄像头数据的过程是安全的,摄像头管理进程才响应数据消费进程所发起的接口调用请求。
步骤330,接收摄像头管理进程针对接口调用请求返回的摄像头数据。
仍如前述实施例中描述的,摄像头管理进程接收到数据消费进程发起的接口调用请求之后,控制摄像头向其推送摄像头数据,并将摄像头向其推送的摄像头数据传输给数数据消费指令。因此,数据消费进程可以接收到摄像头管理进程针对接口调用请求返回的摄像头数据。
具体来说,在一个实施例中,摄像头管理进程根据摄像头管理进程创建的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中,然后向数据消费进程发送通知消息,以使数据消费进程根据通知消息中含有的文件描述符从共享内存文件中读取摄像头数据。
由此,数据消费进程可以相应接收摄像头管理进程针对接口调用请求返回的通知消息,该通知消息是摄像头管理进程将摄像头推送的摄像头数据存入共享内存文件后所发出的,然后根据通知消息中含有的文件描述符,从文件描述符所指示的共享内存文件中读取摄像头数据。
具体来说,数据消费进程根据通知消息中含有的文件描述符,在内存空间中定位文件描述符对应的共享内存文件,若检测到该共享内存文件处于空闲状态,则读取共享内存文件中存储的摄像头数据。示例性的,共享内存文件通过同步锁进程进行状态管理,数据消费进程根据同步锁进程获取共享内存文件对应的同步锁信息,若同步锁信息指示摄像头管理进程当前未在该共享内存文件中执行数据写入操作,数据消费进程则确定共享内存文件处于空闲状态。
由此,基于本实施例提供的方法,能够避免摄像头管理进程和第一数据消费进程同时操作内存空间中的同一内存区域导致摄像头数据在传输过程中出错的问题,保证了摄像头管理进程向第一数据消费进程传输摄像头数据的稳定性。
需要说明的是,以上数据消费进程根据文件描述符从共享内存文件中读取摄像头数据的过程与前述实施例中摄像头管理进程向共享内存文件中存入摄像头数据的过程是相应的,因此数据消费进程根据文件描述符从共享内存文件中读取摄像头数据的详细过程,可以参见前述实施例中描述的摄像头管理进程向共享内存文件中存入摄像头数据的过程,本处则不进行赘述。
步骤350,在数据消费进程未释放对摄像头管理进程的调用之前,若接收到摄像头管理进程发送的调用终止通知消息,则终止调用摄像头管理进程提供的调用接口。
如前所述的,在数据消费进程释放对摄像头管理进程的调用之前,摄像头资源被数据消费进程占用,其它的数据消费进程无法获取到摄像头数据,以保证当前数据消费进程中进行的摄像头数据处理过程不受影响。
在通常情况下,第一数据消费进程在完成摄像头数据的处理之后,会主动向摄像头管理进程发送摄像头数据终止获取指令,以释放掉对摄像头管理进程的调用,保证其它的数据消费进程也能够获取待摄像头采集的摄像头数据。但是,如果当前数据消费进程未及时释放其对于摄像头管理进程的调用,另一数据消费进程又向摄像头管理进程发起了接口调用请求,摄像头管理进程则向当前数据消费进程发送调用终止通知消息,同时终止向第一数据消费进程传输摄像头数据。
数据消费进程根据调用终止通知消息终止获取摄像头数据,由此终止调用摄像头管理进程提供的调用接口,由此释放掉当前数据消费进程对摄像头管理进程的调用。
在释放掉第一数据消费进程的调用之后,摄像头还是持续向摄像头管理进程推送摄像头数据,因此摄像头管理进程可以及时响应另一数据消费进程的调用,将摄像头推送的摄像头数据切换发送至另一数据消费进程,以使得另一数据消费进程根据获取到的摄像头数据实现自身需要实现的功能。
由此,基于本实施例提供的方法,任一数据消费进程在获取摄像头数据后如果未及时释放摄像头资源,而另一数据消费进程也需要获取摄像头数据,摄像头管理进程可以主动释放当前数据消费进程对于摄像头资源的占用,并及时切换向另一数据消费进程传输摄像头数据,从而能够避免出现摄像头资源冲突导致的交易异常的问题。
图7是根据一示例性实施例示出的一种摄像头控制装置的框图。该摄像头由摄像头管理进程进行管理,摄像头管理进程向多个数据消费进程提供调用接口。
如图7所示,在一示例性实施例中,该装置包括第一调用响应模块410、数据传输模块430、调用释放模块450和第二调用响应模块470。
其中,第一调用响应模块410用于根据第一数据消费进程发起的接口调用请求,控制摄像头向摄像头管理进程推送摄像头数据。数据传输模块430用于将摄像头数据传输至第一数据消费进程。调用释放模块450用于在第一数据消费进程释放对摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉第一数据消费进程的调用。第二调用响应模块570用于在释放掉第一数据消费进程的调用之后,响应第二数据消费进程的调用,以将摄像头数据传输至第二数据消费进程。
在另一示例性实施例中,数据传输模块430包括数据存储单元和通知发送单元。数据存储单元用于根据摄像头管理进程创建的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中。通知发送单元用于向第一数据消费进程发送通知消息,以使第一数据消费进程根据通知消息中含有的文件描述符从共享内存文件中读取摄像头数据。
在另一示例性实施例中,数据存储单元包括状态确定子单元、数据存入子单元和存储量确定子单元。状态确定子单元用于确定多个共享内存文件中处于空闲状态的共享内存文件。数据存入子单元用于根据处于空闲状态的共享内存文件对应的文件描述符,将摄像头推送的摄像头数据存入共享内存文件中。存储量确定子单元用于当处于空闲状态的共享内存文件中的数据存储量达到预设存储量时,将摄像头推送的摄像头数据存入多个共享内存文件中处于空闲状态的另一共享内存文件中。
在另一示例性实施例中,状态确定子单元包括第一文件确定子单元和第二文件确定子单元。第一文件确定子单元用于确定上一次存入摄像头数据的第一共享内存文件。第二文件确定子单元用于在多个共享内存文件中确定除第一共享内存文件以外的第二共享内存文件,将第二共享内存文件作为处于空闲状态的共享内存文件。
在另一示例性实施例中,多个共享内存文件通过同步锁进程进行状态管理,第二文件确定子单元包括同步锁信息获取子单元和同步锁信息判定子单元。同步锁信息获取子单元用于基于同步锁进程获取第二共享内存文件对应的同步锁信息。同步锁信息判定子单元用于在同步锁信息指示数据消费进程当前未在第二共享内存文件中执行数据读取操作,则将第二共享内存文件作为处于空闲状态的共享内存文件。
在另一示例性实施例中,该装置还包括鉴权信息提取模块和身份验证模块。鉴权信息提取模块用于提取第一数据消费进程发起的接口调用请求中携带的鉴权信息,根据鉴权信息对所述第一数据消费进程进行身份鉴权。身份验证模块用于在第一数据消费进程通过身份鉴权时,执行根据第一数据消费进程发起的接口调用请求,控制摄像头向所述摄像头管理进程推送摄像头数据的步骤。
在另一示例性实施例中,该装置还包括摄像头控制模块,用于根据任一数据消费进程发送的摄像头开启指令,控制开启摄像头。
在另一示例性实施例中,该装置还包括固件升级控制模块,用于根据检测到的摄像头固件升级指令,控制摄像头进行固件升级。
如图8所示,在另一示例性实施例中,另一摄像头控制装置包括调用请求模块510、数据接收模块530和调用终止模块550。
其中,调用请求模块510用于向摄像头管理进程发送接口调用请求,接口调用请求用于请求获取摄像头采集的摄像头数据。数据接收模块530用于接收摄像头管理进程针对接口调用请求返回的摄像头数据。调用终止模块550用于在数据消费进程未释放对于摄像头管理进程的调用之前,若接收到摄像头管理进程发送的调用终止通知消息,则终止调用摄像头管理进程提供的调用接口。
在另一示例性实施例中,数据接收模块530包括通知消息接收单元和通知消息响应单元。通知消息接收单元用于接收摄像头管理进程针对接口调用请求返回的通知消息,通知消息是摄像头管理进程将摄像头推送的摄像头数据存入共享内存文件后所发出的。通知消息响应单元用于根据通知消息中含有的文件描述符,从文件描述符所指示的共享内存文件中读取所述摄像头数据。
在另一示例性实施例中,通知消息响应单元包括文件定位子单元,用于根据通知消息中含有的文件描述符,在内存空间中定位所述共享内存文件,若检测到共享内存文件处于空闲状态,则读取共享内存文件中存储的摄像头数据。
在另一示例性实施例中,共享内存文件通过同步锁进程进行状态管理,通知消息响应单元还包括同步锁信息判别子单元,用于根据同步锁进程获取共享内存文件对应的同步锁信息,若同步锁信息指示摄像头管理进程当前未在所述共享内存文件中执行数据写入操作,则确定共享内存文件处于空闲状态。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的摄像头控制方法。
图9是根据一示例性实施例示出的一种电子设备的结构示意图。
需要说明的是,该电子设备只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该电子设备也不能解释为需要依赖于或者必须具有图9中示出的示例性的电子设备中的一个或者多个组件。
如图9所示,在一示例性实施例中,电子设备包括处理组件801、存储器802、电源组件803、多媒体组件804、音频组件805、传感器组件807和通信组件808。其中,上述组件并不全是必须的,电子设备可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
处理组件801通常控制电子设备的整体操作,诸如与显示、数据通信以及日志数据处理相关联的操作等。处理组件801可以包括一个或多个处理器809来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件801可以包括一个或多个模块,便于处理组件801和其他组件之间的交互。例如,处理组件801可以包括多媒体模块,以方便多媒体组件804和处理组件801之间的交互。
存储器802被配置为存储各种类型的数据以支持在电子设备的操作,这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器802中存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器809执行,以完成上述实施例中所描述的摄像头控制方法中的全部或者部分步骤。
电源组件803为电子设备的各种组件提供电力。电源组件803可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
多媒体组件804包括在电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括TP(Touch Panel,触摸面板)和LCD(Liquid Crystal Display,液晶显示器)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件805被配置为输出和/或输入音频信号。例如,音频组件805包括一个麦克风,当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。在一些实施例中,音频组件805还包括一个扬声器,用于输出音频信号。
传感器组件807包括一个或多个传感器,用于为电子设备提供各个方面的状态评估。例如,传感器组件807可以检测到电子设备的打开/关闭状态,还可以检测电子设备的温度变化。
通信组件808被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,例如Wi-Fi(Wireless-Fidelity,无线网络)。
可以理解,图9所示的结构仅为示意,电子设备该可以包括比图9中所示更多或更少的组件,或者具有与图9所示不同的组件。图9中所示的各组件均可以采用硬件、软件或者其组合来实现。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的摄像头控制方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的摄像头控制方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (15)
1.一种摄像头控制方法,其特征在于,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述摄像头管理进程与所述多个数据消费进程相互独立;所述方法应用于所述摄像头管理进程,所述方法包括:
根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据;
将所述摄像头数据传输至所述第一数据消费进程;
在所述第一数据消费进程释放对所述摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉所述第一数据消费进程的调用;
在释放掉所述第一数据消费进程的调用之后,响应所述第二数据消费进程的调用,以将所述摄像头数据传输至所述第二数据消费进程。
2.根据权利要求1所述的方法,其特征在于,将所述摄像头数据传输至所述第一数据消费进程,包括:
根据所述摄像头管理进程创建的共享内存文件对应的文件描述符,将所述摄像头推送的摄像头数据存入所述共享内存文件中;
向所述第一数据消费进程发送通知消息,以使所述第一数据消费进程根据所述通知消息中含有的所述文件描述符从所述共享内存文件中读取所述摄像头数据。
3.根据权利要求2所述的方法,其特征在于,根据所述摄像头管理进程创建的共享内存文件对应的文件描述符,将所述摄像头推送的摄像头数据存入所述共享内存文件中,包括:
确定多个共享内存文件中处于空闲状态的共享内存文件;
根据所述处于空闲状态的共享内存文件对应的文件描述符,将所述摄像头推送的摄像头数据存入所述共享内存文件中;
当所述处于空闲状态的共享内存文件中的数据存储量达到预设存储量时,将所述摄像头推送的摄像头数据存入所述多个共享内存文件中处于空闲状态的另一共享内存文件中。
4.根据权利要求3所述的方法,其特征在于,确定多个共享内存文件中处于空闲状态的共享内存文件,包括:
确定上一次存入摄像头数据的第一共享内存文件;
在所述多个共享内存文件中确定除所述第一共享内存文件以外的第二共享内存文件,将所述第二共享内存文件作为所述处于空闲状态的共享内存文件。
5.根据权利要求4所述的方法,其特征在于,所述多个共享内存文件通过同步锁进程进行状态管理;在所述多个共享内存文件中确定除所述第一共享内存文件以外的第二共享内存文件之后,所述方法还包括:
基于所述同步锁进程获取所述第二共享内存文件对应的同步锁信息;
若所述同步锁信息指示所述数据消费进程当前未在所述第二共享内存文件中执行数据读取操作,则将所述第二共享内存文件作为所述处于空闲状态的共享内存文件。
6.根据权利要求1所述的方法,其特征在于,在根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据之前,所述方法还包括:
提取所述第一数据消费进程发起的接口调用请求中携带的鉴权信息,根据所述鉴权信息对所述第一数据消费进程进行身份鉴权;
若所述第一数据消费进程通过所述身份鉴权,则执行根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据的步骤。
7.根据权利要求1所述的方法,其特征在于,在根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据之前,所述方法还包括:
根据任一数据消费进程发送的摄像头开启指令,控制开启所述摄像头。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据检测到的摄像头固件升级指令,控制所述摄像头进行固件升级。
9.一种摄像头控制方法,其特征在于,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述摄像头管理进程与所述多个数据消费进程相互独立;所述方法应用于所述数据消费进程,所述方法包括:
向所述摄像头管理进程发送接口调用请求,所述接口调用请求用于请求获取所述摄像头采集的摄像头数据;
接收所述摄像头管理进程针对所述接口调用请求返回的摄像头数据;
在所述数据消费进程未释放对所述摄像头管理进程的调用之前,若接收到所述摄像头管理进程发送的调用终止通知消息,则终止调用所述摄像头管理进程提供的调用接口。
10.根据权利要求9所述的方法,其特征在于,接收所述摄像头管理进程针对所述接口调用请求返回的摄像头数据,包括:
接收所述摄像头管理进程针对所述接口调用请求返回的通知消息,所述通知消息是所述摄像头管理进程将所述摄像头推送的摄像头数据存入共享内存文件后所发出的;
根据所述通知消息中含有的文件描述符,从所述文件描述符所指示的共享内存文件中读取所述摄像头数据。
11.根据权利要求10所述的方法,其特征在于,根据所述通知消息中含有的文件描述符,从所述文件描述符所指示的共享内存文件中读取所述摄像头数据,包括:
根据所述通知消息中含有的文件描述符,在所述内存空间中定位所述共享内存文件;
若检测到所述共享内存文件处于空闲状态,则读取所述共享内存文件中存储的摄像头数据。
12.根据权利要求11所述的方法,其特征在于,所述共享内存文件通过同步锁进程进行状态管理;所述方法还包括:
根据所述同步锁进程获取所述共享内存文件对应的同步锁信息;
若所述同步锁信息指示所述摄像头管理进程当前未在所述共享内存文件中执行数据写入操作,则确定所述共享内存文件处于空闲状态。
13.一种摄像头控制装置,其特征在于,所述摄像头由摄像头管理进程进行管理,所述摄像头管理进程向多个数据消费进程提供调用接口,所述摄像头管理进程与所述多个数据消费进程相互独立;所述装置包括:
第一调用响应模块,用于根据第一数据消费进程发起的接口调用请求,控制所述摄像头向所述摄像头管理进程推送摄像头数据;
数据传输模块,用于将所述摄像头数据传输至所述第一数据消费进程;
调用释放模块,用于在所述第一数据消费进程释放对所述摄像头管理进程的调用之前,若接收到第二数据消费进程发起的接口调用请求,则释放掉所述第一数据消费进程的调用;
第二调用响应模块,用于在释放掉所述第一数据消费进程的调用之后,响应所述第二数据消费进程的调用,以将所述摄像头数据传输至所述第二数据消费进程。
14.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-12中的任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-12中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010846008.5A CN114079732B (zh) | 2020-08-20 | 2020-08-20 | 摄像头控制方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010846008.5A CN114079732B (zh) | 2020-08-20 | 2020-08-20 | 摄像头控制方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114079732A CN114079732A (zh) | 2022-02-22 |
CN114079732B true CN114079732B (zh) | 2022-11-22 |
Family
ID=80282322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010846008.5A Active CN114079732B (zh) | 2020-08-20 | 2020-08-20 | 摄像头控制方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114079732B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016957B (zh) * | 2022-05-26 | 2024-03-22 | 湖南三一智能控制设备有限公司 | 一种跨进程内存共享的方法、装置、终端及车辆 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793246A (zh) * | 2014-01-22 | 2014-05-14 | 深圳Tcl新技术有限公司 | 协调摄像头资源的方法及*** |
CN107948592A (zh) * | 2017-11-22 | 2018-04-20 | 珠海格力电器股份有限公司 | 一种共享摄像头的方法、装置和智能终端 |
CN109462726A (zh) * | 2017-09-06 | 2019-03-12 | 比亚迪股份有限公司 | 摄像头的控制方法和装置 |
CN110134532A (zh) * | 2019-05-13 | 2019-08-16 | 浙江商汤科技开发有限公司 | 一种信息交互方法及装置、电子设备和存储介质 |
CN110597640A (zh) * | 2019-08-29 | 2019-12-20 | 深圳市优必选科技股份有限公司 | 进程间的数据传输方法、装置、终端及计算机存储介质 |
CN111193899A (zh) * | 2018-11-15 | 2020-05-22 | 杭州海康威视数字技术股份有限公司 | 监控资源的共享方法、装置、***及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050155A1 (en) * | 2004-09-02 | 2006-03-09 | Ing Stephen S | Video camera sharing |
-
2020
- 2020-08-20 CN CN202010846008.5A patent/CN114079732B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793246A (zh) * | 2014-01-22 | 2014-05-14 | 深圳Tcl新技术有限公司 | 协调摄像头资源的方法及*** |
CN109462726A (zh) * | 2017-09-06 | 2019-03-12 | 比亚迪股份有限公司 | 摄像头的控制方法和装置 |
CN107948592A (zh) * | 2017-11-22 | 2018-04-20 | 珠海格力电器股份有限公司 | 一种共享摄像头的方法、装置和智能终端 |
CN111193899A (zh) * | 2018-11-15 | 2020-05-22 | 杭州海康威视数字技术股份有限公司 | 监控资源的共享方法、装置、***及电子设备 |
CN110134532A (zh) * | 2019-05-13 | 2019-08-16 | 浙江商汤科技开发有限公司 | 一种信息交互方法及装置、电子设备和存储介质 |
CN110597640A (zh) * | 2019-08-29 | 2019-12-20 | 深圳市优必选科技股份有限公司 | 进程间的数据传输方法、装置、终端及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114079732A (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180005660A (ko) | 모바일 결제 장치 및 모바일 결제 시스템 | |
RU2608187C2 (ru) | Способ и устройство верификации терминала | |
WO2016165389A1 (zh) | 屏幕异常的处理方法、处理装置和终端 | |
US20210176314A1 (en) | Method and system for synchronizing data, movable platform, and readable-storage medium | |
CN110430198B (zh) | 身份验证方法、边缘服务器,和购物管理方法及*** | |
CN106713127B (zh) | 即时聊天记录的获取及处理方法和装置 | |
CN115525453B (zh) | 多屏协同中断的处理方法及电子设备 | |
EP4054198A1 (en) | Live broadcast method and apparatus, electronic device, and storage medium | |
CN114553601B (zh) | 信息校验方法、装置、设备和介质 | |
CN114079732B (zh) | 摄像头控制方法及装置、电子设备、存储介质 | |
CN113987073A (zh) | 状态信息的延时更新方法、装置及电子设备 | |
EP4096259A1 (en) | Sim card sharing method and device, communication device and storage medium | |
CN107943622B (zh) | 备用运维方法、装置和*** | |
CN103024545B (zh) | 一种机顶盒的操作***启动方法及机顶盒、服务器 | |
CN117407065A (zh) | 网卡预启动控制方法、装置、设备、***及存储介质 | |
CN113867831B (zh) | 智能设备控制方法、智能设备、存储介质及电子设备 | |
CN116450390A (zh) | 看门狗检测方法及电子设备 | |
CN105824658B (zh) | 一种电子设备的相机模块启动方法及电子设备 | |
CN114389868A (zh) | 一种云资源的分配方法、***、装置及存储介质 | |
CN112416641A (zh) | 主从架构中被控端节点重启检测方法及主控端节点 | |
CN115883822B (zh) | 在线考试***摄像头调试方法、装置及存储介质 | |
CN111147656A (zh) | 移动终端的数据交互方法、移动终端以及计算机存储介质 | |
CN112651736B (zh) | 移动支付控制方法及装置、设备、计算机可读存储介质 | |
EP3993458A1 (en) | Enrollment of enrollee devices to a wireless network | |
US20230319559A1 (en) | Enrollment of enrollee devices to a wireless network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |