CN116360915A - 多应用访问相机的方法及设备 - Google Patents
多应用访问相机的方法及设备 Download PDFInfo
- Publication number
- CN116360915A CN116360915A CN202111632933.9A CN202111632933A CN116360915A CN 116360915 A CN116360915 A CN 116360915A CN 202111632933 A CN202111632933 A CN 202111632933A CN 116360915 A CN116360915 A CN 116360915A
- Authority
- CN
- China
- Prior art keywords
- processing
- request
- application program
- response data
- virtual
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 342
- 230000004044 response Effects 0.000 claims abstract description 137
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 230000006978 adaptation Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 18
- 101150053844 APP1 gene Proteins 0.000 description 17
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 9
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- -1 APP2 Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种多应用访问相机的方法及设备,该方法包括:虚拟相机层接收多个应用程序同时发送的第一处理请求,虚拟相机层是应用程序和真实相机之间的逻辑处理层,其中包括对真实相机的应用程序接口封装得到的虚拟接口,虚拟接口对应多个虚拟接口实例,每个虚拟接口实例用于接收一个应用程序的第一处理请求;虚拟相机层将多个第一处理请求合并为第二处理请求;虚拟相机层根据第二处理请求对真实相机进行操作得到第二响应数据;虚拟相机层根据第二响应数据和每个应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;虚拟相机层通过每个虚拟接口实例将第一响应数据分别发送给对应的应用程序。本申请可以使多个应用程序同时访问真实相机。
Description
技术领域
本申请涉及计算机处理技术领域,尤其涉及一种多应用访问相机的方法及设备。
背景技术
随着电子设备的迅速发展,用户对电子设备的使用越来越频繁。用户可以使用电子设备的相机拍摄图像或拍摄视频。现有技术中,当前的操作系统在一个时刻只允许一个应用程序对相机进行访问,不允许多个应用程序同时对相机进行访问。
然而,随着相机的应用越来越广泛,出现了多个应用程序同时访问相机的需求。从而,如何实现多个应用程序同时访问相机是亟待解决的问题。
发明内容
本申请提供一种多应用访问相机的方法及设备,以使多个应用程序同时访问相机。
第一方面,本申请提供一种多应用访问相机的方法,包括:
虚拟相机层接收多个应用程序同时发送的第一处理请求,所述虚拟相机层是应用程序和真实相机之间的逻辑处理层,所述虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,所述虚拟接口对应多个虚拟接口实例,每个所述虚拟接口实例用于接收一个应用程序的第一处理请求;
所述虚拟相机层将多个所述第一处理请求合并为第二处理请求;
所述虚拟相机层根据所述第二处理请求对真实相机进行操作得到第二响应数据;
所述虚拟相机层根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;
所述虚拟相机层通过每个所述虚拟接口实例将所述第一响应数据分别发送给对应的所述应用程序。
可选地,所述虚拟相机层中包括请求处理模块,所述虚拟相机层将多个所述第一处理请求合并为第二处理请求,包括:
若多个所述第一处理请求为相同请求,则所述请求处理模块从多个所述第一处理请求中随机选取一个请求作为第二处理请求;
若多个所述第一处理请求为处理目标不同的请求,则所述请求处理模块从多个所述第一处理请求中选取优先级最高的请求作为第二处理请求;
若多个所述第一处理请求为处理目标相同,但拍摄参数不同的图像拍摄请求,则所述请求处理模块根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求。
可选地,每个所述图像拍摄请求中包括至少一个拍摄参数的取值,所述请求处理模块根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求,包括:
针对每个拍摄参数,所述请求处理模块获取所述拍摄参数在各图像拍摄请求中分别对应的取值;
所述请求处理模块从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值;
所述请求处理模块根据各所述拍摄参数的目标取值生成第二处理请求。
可选地,所述请求处理模块从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值,包括:
若所述拍摄参数是正向参数,则所述请求处理模块从所述拍摄参数的多个取值中获取最大取值作为所述拍摄参数的目标取值;
若所述拍摄参数是负向参数,则所述请求处理模块从所述拍摄参数的多个取值中获取最小取值作为所述拍摄参数的目标取值。
可选地,所述虚拟相机层还包括:适配模块,所述虚拟相机层根据所述第二处理请求对真实相机进行操作得到第二响应数据,包括:
若所述真实相机的当前状态与所述第二处理请求的目标状态一致,则所述适配模块生成已处理提示信息,作为所述第二响应数据,所述已处理提示信息用于提示所述第二处理请求已处理;
若所述当前状态与所述第二处理请求的目标状态不一致,则所述适配模块根据所述第二处理请求对真实相机进行操作得到第二响应数据。
可选地,所述虚拟相机层还包括:数据处理模块,所述虚拟相机层根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据,包括:
所述数据处理模块通知第二应用程序对应的虚拟接口实例复制所述第二响应数据,所述第二应用程序是所述多个应用程序中所述第一应用程序之外的应用程序,所述第一应用程序是所述第一处理请求与所述第二响应数据匹配的应用程序;
所述数据处理模块在所述第二应用程序对应的虚拟接口实例复制完所述第二响应数据之后,将所述第二响应数据发送给所述第一应用程序对应的虚拟接口实例;
所述第二应用程序的虚拟接口实例根据所述第一处理请求,将复制的所述第二响应数据转换为所述第二应用程序对应的第一响应数据,所述转换包括以下至少一种:旋转、裁剪、亮度调整、色彩调整;
所述第一应用程序的虚拟接口实例将接收到的第二响应数据作为所述第一应用程序的第一响应数据。
第二方面,本申请提供一种多应用访问相机的装置,包括:应用程序、虚拟相机层和真实相机;其中,所述虚拟相机层,用于:
接收多个应用程序同时发送的第一处理请求,所述虚拟相机层是应用程序和真实相机之间的逻辑处理层,所述虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,所述虚拟接口对应多个虚拟接口实例,每个所述虚拟接口实例用于接收一个应用程序的第一处理请求;
将多个所述第一处理请求合并为第二处理请求;
根据所述第二处理请求对真实相机进行操作得到第二响应数据;
根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;
通过每个所述虚拟接口实例将所述第一响应数据分别发送给对应的所述应用程序。
可选地,所述虚拟相机层中包括请求处理模块,所述请求处理模块用于:
若多个所述第一处理请求为相同请求,则从多个所述第一处理请求中随机选取一个请求作为第二处理请求;
若多个所述第一处理请求为处理目标不同的请求,则从多个所述第一处理请求中选取优先级最高的请求作为第二处理请求;
若多个所述第一处理请求为处理目标相同,但拍摄参数不同的图像拍摄请求,则根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求。
可选地,每个所述图像拍摄请求中包括至少一个拍摄参数的取值,所述请求处理模块还用于:
针对每个拍摄参数,获取所述拍摄参数在各图像拍摄请求中分别对应的取值;
从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值;
根据各所述拍摄参数的目标取值生成第二处理请求。
可选地,所述请求处理模块还用于:
若所述拍摄参数是正向参数,则从所述拍摄参数的多个取值中获取最大取值作为所述拍摄参数的目标取值;
若所述拍摄参数是负向参数,则从所述拍摄参数的多个取值中获取最小取值作为所述拍摄参数的目标取值。
可选地,所述虚拟相机层还包括:适配模块,所述适配模块用于:
若所述真实相机的当前状态与所述第二处理请求的目标状态一致,则生成已处理提示信息,作为所述第二响应数据,所述已处理提示信息用于提示所述第二处理请求已处理;
若所述当前状态与所述第二处理请求的目标状态不一致,则根据所述第二处理请求对真实相机进行操作得到第二响应数据。
可选地,所述虚拟相机层还包括:
数据处理模块,用于通知第二应用程序对应的虚拟接口实例复制所述第二响应数据,所述第二应用程序是所述多个应用程序中所述第一应用程序之外的应用程序,所述第一应用程序是所述第一处理请求与所述第二响应数据匹配的应用程序;
数据处理模块还用于在所述第二应用程序对应的虚拟接口实例复制完所述第二响应数据之后,将所述第二响应数据发送给所述第一应用程序对应的虚拟接口实例;
所述第二应用程序的虚拟接口实例用于根据所述第一处理请求,将复制的所述第二响应数据转换为所述第二应用程序对应的第一响应数据,所述转换包括以下至少一种:旋转、裁剪、亮度调整、色彩调整;
所述第一应用程序的虚拟接口实例还用于将接收到的第二响应数据作为所述第一应用程序的第一响应数据。
第三方面,本申请提供一种电子设备,包括:存储器,处理器;
存储器;用于存储计算机执行指令的存储器;
当所述处理器执行所述计算机执行指令时,使所述电子设备实现第一方面所述的方法。
第四方面,本申请提供一种计算机程序,该计算机程序用于实现第一方面所述的方法。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当所述计算机可读存储介质中的所述计算机执行指令由电子设备的处理器执行时,使得电子设备实现第一方面所述的方法。
本申请提供了一种多应用访问相机的方法及设备,该方法包括:虚拟相机层接收多个应用程序同时发送的第一处理请求,虚拟相机层是应用程序和真实相机之间的逻辑处理层,其中包括对真实相机的应用程序接口封装得到的虚拟接口,虚拟接口对应多个虚拟接口实例,每个虚拟接口实例用于接收一个应用程序的第一处理请求;虚拟相机层将多个第一处理请求合并为第二处理请求;虚拟相机层根据第二处理请求对真实相机进行操作得到第二响应数据;虚拟相机层根据第二响应数据和每个应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;虚拟相机层通过每个虚拟接口实例将第一响应数据分别发送给对应的应用程序。本申请可以使多个应用程序同时访问真实相机。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是现有技术中应用程序访问相机的过程示意图;
图2是本申请实施例提供的一种多应用访问相机的方法的步骤流程图;
图3是本申请实施例提供的响应数据的返回过程示意图;
图4是本申请实施例提供的一种多应用访问相机的流程示意图;
图5是本申请实施例提供的一种多应用访问相机的装置结构框图;
图6是本申请实施例提供的一种电子设备的结构框图;
图7是本申请实施例提供的另一种电子设备的结构框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供的多应用访问相机的方法,可以适用于电子设备中,电子设备可以是具有图像采集功能或视频采集功能的任意设备。常用的电子设备可以为手机、平板电脑等。这里的相机是电子设备上的摄像头。电子设备的操作系统可以访问电子设备的相机,电子上运行的应用程序也可以访问相机。
现有技术中,只允许一个应用程序同时访问相机,当多个应用程序访问相机时,这多个应用程序会抢占相机,最终成功抢占相机的应用程序只有一个。图1是现有技术中应用程序访问相机的过程示意图。参照图1所示,在t1时刻,应用程序APP1正在访问相机,此时,另一个应用程序APP2欲访问相机。经过APP1和APP2的抢占,APP1的访问被拒绝,APP2继续正常访问相机。在t2时刻,APP2正在访问相机的过程中,APP3欲访问相机。经过APP2和APP3的抢占,APP2继续访问应用程序,APP3被拒绝访问相机。
为了使多个应用程序同时访问相机,本申请实施例在相机(为了区分,后续称为真实相机)和应用程序之间添加虚拟相机层。该虚拟相机层可以接收多个应用程序同时发送的第一处理请求,以将多个第一处理请求合并为第二处理请求,从而通过第二处理请求访问真实相机。这样,实现了多个应用程序同时访问真实相机的目的。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2是本申请实施例提供的一种多应用访问相机的方法的步骤流程图,应用于电子设备,该多应用访问相机的方法包括S101和S105:
S101:虚拟相机层接收多个应用程序同时发送的第一处理请求,虚拟相机层是应用程序和真实相机之间的逻辑处理层,虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,虚拟接口对应多个虚拟接口实例,每个虚拟接口实例用于接收一个应用程序的第一处理请求。
其中,虚拟相机层不仅用于接收应用程序的处理请求,还用于访问真实相机,并将访问得到的第一响应数据发送给应用程序。
可以理解的是,真实相机具有一套应用程序接口(API,application programinterface),应用程序接口是应用程序访问真实相机的接口,一套应用程序接口可以按照功能划分为多个应用程序接口。例如,用于打开相机的应用程序接口,用于关闭相机的应用程序接口,用于拍摄的应用程序接口等。
为了保证现有的应用程序按照原有的方式访问真实相机,虚拟相机层需要向应用程序提供与上述真实相机的应用程序接口功能相同的虚拟接口。这里的虚拟接口可以理解为对真实相机的API封装得到的,在真实相机的API的功能基础上,添加一些附加功能。例如,在一个应用程序请求开启真实相机时,可以针对该应用程序创建虚拟接口实例,并记录该虚拟接口实例与应用程序之间的对应关系。
当然,上述第一处理请求不仅可以是请求开启真实相机的请求,还可以为一下一种:用于拍摄的请求、用于关闭相机的请求。
可以看书,本申请实施例的多个应用程序可以在任意时间向上述虚拟相机层发送第一处理请求,并不需要知道是否有其余应用程序正在访问真实相机。也就是说,多个应用程序之间是无感知的,解耦合的。
S102:虚拟相机层将多个第一处理请求合并为第二处理请求。
具体地,合并第一处理请求的过程需要根据具体场景不同而进行合并,也就是可以根据多个第一处理请求是否相同而确定合并策略。
在第一种场景中,多个第一处理请求相同,这里的相同,包括处理目标相同和处理参数相同。例如,多个应用程序在同一时刻均请求开启真实相机,也就是说多个第一处理请求的处理目标均是开启真实相机。又例如,多个应用程序在同一时刻均请求拍摄图像,并且分辨率和尺寸都相同,也就是说多个第一处理请求的处理目标均是拍摄,并且拍摄参数都相同,这里的拍摄参数就是处理参数。
在上述第一种场景中,由于多个第一处理请求相同,那么虚拟相机层可以从中随机选取一个第一处理请求作为第二处理请求即可,该第二处理请求是多个应用程序共享的处理请求,其得到的第二响应数据也是多个应用程序共享的。
在第二种场景中,多个第一处理请求的处理目标不同。例如,应用程序APP1和APP2在同一时刻分别请求开启真实相机和请求拍摄图像,也就是说多个第一处理请求的处理目标不同。
在上述第二种场景中,处理目标不同代表多个第一处理请求是冲突的,此时,只能对其中一个第一处理请求进行响应。具体地,可以随机选取一个第一处理请求作为第二处理请求,也可以从多个第一处理请求中选取优先级最高的请求作为第二处理请求。
可以理解的是,相对于随机选取,按照优先级选取可以保证优先级高的第一处理请求的正常响应。
其中,上述第一处理请求的优先级可以包括以下至少一种:对应的应用程序的优先级、处理请求的处理目标之间的优先级。
对于上述应用程序的优先级,可以对不同应用程序设定优先级,较重要的应用程序可以对应较高的优先级。
上述处理目标之间的优先级可以根据处理目标之间的相互影响程度确定。例如,打开真实相机不会影响关闭真实相机,从而处理目标为打开真实相机的优先级高于处理目标为关闭真实相机的优先级。又例如,拍摄图像不会影响关闭真实相机,从而处理目标为拍摄图像的优先级高于关闭真实相机的优先级。综上所述,处理目标的优先级可以包括以下顺序降低:拍摄图像的优先级、打开真实相机的优先级和关闭真实相机的优先级。
本申请实施例可以按照处理目标之间的优先级合并第一处理请求,如此,可以尽量的保证所有第一处理请求均被处理,避免部分请求没有得到对应的响应。
例如,如果一个应用程序请求开启真实相机,另一个应用程序请求拍摄图像,由于拍摄图像的优先级高于开启真实相机的优先级,从而拍摄图像的第一处理请求作为第二处理请求。但是,由于拍摄图像的前提是相机处于开启状态,从而也相当于对开启真实相机进行了响应,这样保证了两个第一处理请求均被响应。
又例如,如果一个应用程序请求关闭真实相机,另一个应用程序请求拍摄图像,由于拍摄图像的优先级高于关闭真实相机的优先级,从而拍摄图像的第一处理请求作为第二处理请求。但是,拍摄图像不会造成关闭相机的应用程序的后续正常操作。
在第三种场景中,多个第一处理请求是处理目标相同,但拍摄参数不同的图像拍摄请求。可以按照多个第一处理请求的拍摄参数,将多个第一处理请求合并为第二处理请求。
上述合并过程可以包括:首先,可以针对每个拍摄参数,获取该拍摄参数在各图像拍摄请求中分别对应的取值;然后,从拍摄参数的多个取值中,选取一个取值作为拍摄参数的目标取值;最后,根据各拍摄参数的目标取值生成第二处理请求。
上述目标取值可以是随机选取的。例如,对于拍摄参数为分辨率的两个第一处理请求:APP1的第一处理请求用于拍摄分辨率为1048*512的图像,APP2的第一处理请求用于拍摄分辨率为512*128的图像,首先,获取分辨率在两个第一处理请求中的取值:1048*512和512*128,然后,从中随机选取一个取值,例如,512*128,作为分辨率的目标取值;最后,根据分辨率的目标取值512*128生成第二处理请求,从而第二处理请求用于拍摄分辨率为512*128的图像。
可以看出,上述随机选取目标取值的方式虽然都实现了各个应用程序的拍摄目标,但可能会导致拍摄的图像无法满足每个应用程序对图像的要求。例如,上述分辨率为512*128的第二处理请求拍摄的图像无法满足APP1对图像的要求。
为了尽量保证每个应用程序对图像的要求,可以根据每个拍摄参数与图像质量之间的关系而选取每个拍摄参数的目标取值。具体地,若拍摄参数是正向参数,则从拍摄参数的多个取值中获取最大取值作为该拍摄参数的目标取值。若拍摄参数是负向参数,则从拍摄参数的多个取值中获取最小取值作为该拍摄参数的目标取值。
其中,正向参数是取值越大图像质量越好的参数,负向参数是取值越大图像质量越差的参数。例如,分辨率越大,代表图像质量越好,那么可以分辨率为正向参数。
例如,对于拍摄参数为分辨率的两个第一处理请求:APP1的第一处理请求用于拍摄分辨率为1048*512的图像,APP2的第一处理请求用于拍摄分辨率为512*128的图像,首先,获取分辨率在两个第一处理请求中的取值:1048*512和512*128,然后,从中随机选取最大值1048*512,作为分辨率的目标取值;最后,根据分辨率的目标取值1048*512生成第二处理请求,从而第二处理请求用于拍摄分辨率为1048*512的图像。
本申请实施例可以通过上述方法,针对正向参数和负向参数采用不同策略选取目标取值,可以保证根据第二处理请求拍摄得到的图像可以满足每个应用程序对图像的要求。
可选地,为了提高对虚拟相机层的维护复杂度,可以将虚拟相机层按照功能进行划分,上述对第一处理请求合并为第二处理请求的过程可以由虚拟相机层的请求处理模块实现。具体地,若多个第一处理请求为相同请求,则请求处理模块从多个第一处理请求中随机选取一个请求作为第二处理请求;若多个第一处理请求为处理目标不同的请求,则请求处理模块从多个第一处理请求中选取优先级最高的请求作为第二处理请求;若多个第一处理请求为处理目标相同,但拍摄参数不同的图像拍摄请求,则请求处理模块根据多个第一处理请求的拍摄参数,将多个第一处理请求合并为第二处理请求。
进而,上述请求处理模块根据多个第一处理请求的拍摄参数,将多个第一处理请求合并为第二处理请求,可以包括:
首先,针对每个拍摄参数,请求处理模块获取该拍摄参数在各图像拍摄请求中分别对应的取值;然后,请求处理模块从拍摄参数的多个取值中,选取一个取值作为拍摄参数的目标取值;最后,请求处理模块根据各拍摄参数的目标取值生成第二处理请求。
S103:虚拟相机层根据第二处理请求对真实相机进行操作得到第二响应数据。
第二响应数据根据第二处理请求的不同而不同。当第二处理请求用于打开真实相机时,第二响应数据可以包括打开成功或失败的信息。当第二处理请求用于关闭真实相机时,第二响应数据可以包括关闭成功或失败的信息。当第二处理请求用于拍摄图像时,第二响应数据可以包括图像数据。
可选地,上述虚拟相机层还可以包括:适配模块。从而,若真实相机的当前状态与第二处理请求的目标状态一致,则适配模块生成已处理提示信息,作为第二响应数据,已处理提示信息用于提示第二处理请求已处理;若当前状态与第二处理请求的目标状态不一致,则适配模块根据第二处理请求对真实相机进行操作得到第二响应数据。
其中,目标状态是指第二处理请求处理之后真实相机的状态。例如,第二处理请求用于请求打开真实相机,那么第二处理请求的目标状态为开启状态。又例如,第二处理请求用于关闭真实相机,那么第二处理请求的目标状态为关闭状态。
本申请实施例可以通过当前状态和目标状态确定是否需要根据第二处理请求对真实相机进行操作,如此可以避免重复进行操作。
S104:虚拟相机层根据第二响应数据和每个应用程序的第一处理请求,生成针对每个应用程序的第一响应数据。
具体地,针对每个应用程序,通过该应用程序的第一处理请求将第二响应数据进行处理,得到该应用程序的第一响应数据。例如,如果第一处理请求对应的尺寸小于第二响应数据的尺寸,那么可以按照第一处理请求对应的尺寸将第二响应数据进行裁剪,得到应用程序的第一响应数据。
在本申请实施例中,上述虚拟相机层还可以包括:数据处理模块。从而生成第一响应数据的过程可以由数据处理模块进行。
首先,上述数据处理模块通知第二应用程序对应的虚拟接口实例复制第二响应数据,第二应用程序是多个应用程序中第一应用程序之外的应用程序,第一应用程序是第一处理请求与第二响应数据匹配的应用程序。
然后,数据处理模块在第二应用程序对应的虚拟接口实例复制完第二响应数据之后,将第二响应数据发送给第一应用程序对应的虚拟接口实例。
其中,这里的将第二响应数据发送给第一应用程序对应的虚拟接口实例可以理解为将第二响应数据置换给第一应用程序对应的虚拟接口实例,而不是第一应用程序对应的虚拟接口实例通过复制的方式获取到第二响应数据。
再然后,每个第二应用程序的虚拟接口实例根据第一处理请求,将复制的第二响应数据转换为第二应用程序对应的第一响应数据,该转换包括以下至少一种:旋转、裁剪、亮度调整、色彩调整。
本申请实施例可以通过缓存空间置换的方式将第二响应数据发送给第一应用程序的虚拟接口实例,从而可以减少数据的复制次数,缩短对多个应用程序的第一处理请求进行处理所需要的时长,提高了对多个应用程序的处理请求的响应效率。
最后,每个第一应用程序的虚拟接口实例将接收到的第二响应数据作为第一应用程序的第一响应数据。
图3是本申请实施例提供的响应数据的返回过程示意图。参照图3所示,数据处理模块可以包括:数据预处理单元和数据核心处理单元,需要将响应数据发送给两个应用程序APP1和APP2(图3中示例了两个应用程序,实际中不限定为两个),APP1对应的虚拟接口实例为I1,APP2对应的虚拟接口实例为I2。
参照图3所示,响应数据的返回过程可以包括:
S11:数据预处理单元从图像数据存储区中读取第二响应数据。
S12:数据预处理单元从第一空闲缓存队列中获取空闲缓存。
S13:数据预处理单元将写入第二响应数据的缓存推入第一占用缓存队列。这个写入第二响应数据的缓存是将第二响应数据写入到S12的空闲缓存得到的。
S14:数据预处理单元向数据核心处理单元通知有第二响应数据到达,并携带数据标识。
S21:数据核心处理单元根据数据标识从第一占用缓存队列中获取第二响应数据。
S22:数据核心处理单元释放图像数据存储区。
S231:数据核心处理单元通知虚拟接口实例I1有第二响应数据到达,并携带数据标识。
S311:虚拟接口实例I1从第一占用缓存队列中复制第二响应数据。
S312:虚拟接口实例I1从对应的第二空闲缓存队列中获取空闲缓存。
S313:虚拟接口实例I1将写入第一响应数据RP1的缓存写入第二占用缓存队列。其中,写入第一响应数据RP1的缓存是将复制的第二响应数据转换得到的第一响应数据RP1写入到S312的空闲缓存中得到的。
S314:虚拟接口实例I1向数据核心处理单元通知已复制完(为了简化图,图中未示出)。
S315:虚拟接口实例I1向应用程序APP1通知有第一响应数据RP1到达。
S232:数据核心处理单元向虚拟接口实例I2通知有第二响应数据到达,并携带数据标识和可置换标记。
具体地,这里的可置换标记是数据核心处理单元确定的。数据核心处理单元预先知道第二响应数据对应的应用程序数量,并将第一处理请求与第二响应数据匹配的应用程序确定为第一应用程序,将其余应用程序确定为第二应用程序。从而数据核心处理单元可以根据第二应用程序发送的已复制完的通知,确定第二应用程序是否已复制完。在接收到所有第二应用程序发送的已复制完的通知之后,数据核心处理单元可以生成可置换标记,用于指示该第一应用程序可以通过空间置换获取第二响应数据,这里的第一应用程序为APP2。
S321:虚拟接口实例I2通过空间置换得到第二响应数据。也就是说直接从第一占用队列中获取存储第二响应数据的缓存作为第一响应数据RP2。
S322:虚拟接口实例I2将第一响应数据RP2写入第二占用缓存队列。
S323:虚拟接口实例I2向应用程序APP2通知有第一响应数据RP2到达。
S411:应用程序APP1从对应的第二占用缓存队列中读取RP1。
S421:应用程序APP2从对应的第二占用缓存队列中读取RP2。
可选地,在S411之后,应用程序APP1还可以将RP1的缓存重新放入对应的第一空闲缓存队列中,应用程序APP2还可以将RP2的缓存重新放入对应的第一空闲缓存队列中。这样,可以使这些缓存可以重复利用。
S105:虚拟相机层通过每个虚拟接口实例将第一响应数据分别发送给对应的应用程序。
例如,有APP1、APP2和APP3发起了第一处理请求,APP1对应的虚拟接口实例为I1,APP2对应的虚拟接口实例为I2,APP3对应的虚拟接口实例为I3,从而,I1将APP1的第一响应数据发送个APP1,I2将APP2的第一响应数据发送给APP2,I3将APP3的第一响应数据发送给APP3。
可以看出,本申请实施例可以将虚拟相机层按照功能拆分为若干个虚拟模块,包括但不限于:请求处理模块、适配模块、数据处理模块和虚拟接口。每个虚拟模块对应一个功能,我们只需要关注每个虚拟模块的输入和输出,不需要关注虚拟模块的内部处理,从而可以从功能上进行解耦,方便后续定位问题。
此外,应用程序和真实相机之间通过虚拟相机层之间隔离,使应用程序无法直接操作真实相机,有助于提高真实相机的安全性。
图4是本申请实施例提供的一种多应用访问相机的流程示意图。参照图4所示,首先,APP1、APP2和APP3同时向虚拟相机层中的各个虚拟接口实例发送第一处理请求RQ1、RQ2和RQ3;然后,请求处理模块将RQ1、RQ2和RQ3合并为第二处理请求RQ4,以将该RQ4发送给适配模块;再然后,适配模块根据第二处理请求对真实相机进行操作得到第二响应数据RP4;最后,数据处理模块根据RP4生成RP1、RP2和RP3,以分别发送给I1、I2和I3;再最后,I1、I2和I3分别将RP1、RP2和RP3发送给APP1、APP2和APP3。当然,RP4可能与RP1和/或RP2和/或RP3相同。
在实际应用中,适配模块需要通过电子设备的操作系统访问真实相机。
对应于上述图2所示的多应用访问相机的方法,本申请实施例还提供了一种多应用访问相机的装置。图5是本申请实施例提供的一种多应用访问相机的装置结构框图,参照图5所示,该多应用访问相机的装置200包括:应用程序201、虚拟相机层202和真实相机203。
其中,上述虚拟相机层202,用于:
接收多个应用程序同时发送的第一处理请求,所述虚拟相机层是应用程序和真实相机之间的逻辑处理层,所述虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,所述虚拟接口对应多个虚拟接口实例,每个所述虚拟接口实例用于接收一个应用程序的第一处理请求;将多个所述第一处理请求合并为第二处理请求;根据所述第二处理请求对真实相机203进行操作得到第二响应数据;根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;通过每个所述虚拟接口实例将所述第一响应数据分别发送给对应的所述应用程序。
可选地,所述虚拟相机层中包括请求处理模块,所述请求处理模块用于:
若多个所述第一处理请求为相同请求,则从多个所述第一处理请求中随机选取一个请求作为第二处理请求。
若多个所述第一处理请求为处理目标不同的请求,则从多个所述第一处理请求中选取优先级最高的请求作为第二处理请求。
若多个所述第一处理请求为处理目标相同,但拍摄参数不同的图像拍摄请求,则根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求。
可选地,每个所述图像拍摄请求中包括至少一个拍摄参数的取值,所述请求处理模块还用于:
针对每个拍摄参数,获取所述拍摄参数在各图像拍摄请求中分别对应的取值。
从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值。
根据各所述拍摄参数的目标取值生成第二处理请求。
可选地,所述请求处理模块还用于:
若所述拍摄参数是正向参数,则从所述拍摄参数的多个取值中获取最大取值作为所述拍摄参数的目标取值。
若所述拍摄参数是负向参数,则从所述拍摄参数的多个取值中获取最小取值作为所述拍摄参数的目标取值。
可选地,所述虚拟相机层还包括:适配模块,所述适配模块用于:
若所述真实相机的当前状态与所述第二处理请求的目标状态一致,则生成已处理提示信息,作为所述第二响应数据,所述已处理提示信息用于提示所述第二处理请求已处理。
若所述当前状态与所述第二处理请求的目标状态不一致,则根据所述第二处理请求对真实相机进行操作得到第二响应数据。
可选地,所述虚拟相机层还包括:
数据处理模块,用于通知第二应用程序对应的虚拟接口实例复制所述第二响应数据,所述第二应用程序是所述多个应用程序中所述第一应用程序之外的应用程序,所述第一应用程序是所述第一处理请求与所述第二响应数据匹配的应用程序;
数据处理模块还用于在所述第二应用程序对应的虚拟接口实例复制完所述第二响应数据之后,将所述第二响应数据发送给所述第一应用程序对应的虚拟接口实例。
所述第二应用程序的虚拟接口实例用于根据所述第一处理请求,将复制的所述第二响应数据转换为所述第二应用程序对应的第一响应数据,所述转换包括以下至少一种:旋转、裁剪、亮度调整、色彩调整。
所述第一应用程序的虚拟接口实例还用于将接收到的第二响应数据作为所述第一应用程序的第一响应数据。
上述多应用访问相机的装置实施例是上述方法实施例对应的装置实施例,具有与方法实施例相同的技术效果,详细说明可以参照方法实施例的详细说明,本申请实施例在此不再赘述。
图6是本申请实施例提供的一种电子设备的结构框图。该电子设备600包括处理器601和用于存储处理器601计算机执行指令的存储器602,当所述处理器601执行所述计算机执行指令时,使所述电子设备600实现前述多应用访问相机的方法。
此外,该电子设备还包括接收器603和发送器604,接收器603用于接收从其余装置或设备的信息,并转发给处理器601,发送器604用于将信息发送到其余装置或设备。
进一步地,图7是本申请实施例提供的另一种电子设备的结构框图,该电子设备900可以为终端设备。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(PortableAndroid Device,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(Read Only Memory,简称ROM)902中的程序或者从存储装置908加载到随机访问存储器(Random Access Memory,简称RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM 902被安装。在该计算机程序被处理装置901执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本申请实施例还提供了一种计算机程序,计算机程序用于实现前述多应用访问相机的方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当该存储介质中的计算机执行指令由电子设备的处理器执行时,使得电子设备实现前述多应用访问相机的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种多应用访问相机的方法,其特征在于,包括:
虚拟相机层接收多个应用程序同时发送的第一处理请求,所述虚拟相机层是应用程序和真实相机之间的逻辑处理层,所述虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,所述虚拟接口对应多个虚拟接口实例,每个所述虚拟接口实例用于接收一个应用程序的第一处理请求;
所述虚拟相机层将多个所述第一处理请求合并为第二处理请求;
所述虚拟相机层根据所述第二处理请求对真实相机进行操作得到第二响应数据;
所述虚拟相机层根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;
所述虚拟相机层通过每个所述虚拟接口实例将所述第一响应数据分别发送给对应的所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述虚拟相机层中包括请求处理模块,所述虚拟相机层将多个所述第一处理请求合并为第二处理请求,包括:
若多个所述第一处理请求为相同请求,则所述请求处理模块从多个所述第一处理请求中随机选取一个请求作为第二处理请求;
若多个所述第一处理请求为处理目标不同的请求,则所述请求处理模块从多个所述第一处理请求中选取优先级最高的请求作为第二处理请求;
若多个所述第一处理请求为处理目标相同,但拍摄参数不同的图像拍摄请求,则所述请求处理模块根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求。
3.根据权利要求2所述的方法,其特征在于,每个所述图像拍摄请求中包括至少一个拍摄参数的取值,所述请求处理模块根据多个所述第一处理请求的拍摄参数,将多个所述第一处理请求合并为第二处理请求,包括:
针对每个拍摄参数,所述请求处理模块获取所述拍摄参数在各图像拍摄请求中分别对应的取值;
所述请求处理模块从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值;
所述请求处理模块根据各所述拍摄参数的目标取值生成第二处理请求。
4.根据权利要求3所述的方法,其特征在于,所述请求处理模块从所述拍摄参数的多个取值中,选取一个取值作为所述拍摄参数的目标取值,包括:
若所述拍摄参数是正向参数,则所述请求处理模块从所述拍摄参数的多个取值中获取最大取值作为所述拍摄参数的目标取值;
若所述拍摄参数是负向参数,则所述请求处理模块从所述拍摄参数的多个取值中获取最小取值作为所述拍摄参数的目标取值。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述虚拟相机层还包括:适配模块,所述虚拟相机层根据所述第二处理请求对真实相机进行操作得到第二响应数据,包括:
若所述真实相机的当前状态与所述第二处理请求的目标状态一致,则所述适配模块生成已处理提示信息,作为所述第二响应数据,所述已处理提示信息用于提示所述第二处理请求已处理;
若所述当前状态与所述第二处理请求的目标状态不一致,则所述适配模块根据所述第二处理请求对真实相机进行操作得到第二响应数据。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述虚拟相机层还包括:数据处理模块,所述虚拟相机层根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据,包括:
所述数据处理模块通知第二应用程序对应的虚拟接口实例复制所述第二响应数据,所述第二应用程序是所述多个应用程序中所述第一应用程序之外的应用程序,所述第一应用程序是所述第一处理请求与所述第二响应数据匹配的应用程序;
所述数据处理模块在所述第二应用程序对应的虚拟接口实例复制完所述第二响应数据之后,将所述第二响应数据发送给所述第一应用程序对应的虚拟接口实例;
所述第二应用程序的虚拟接口实例根据所述第一处理请求,将复制的所述第二响应数据转换为所述第二应用程序对应的第一响应数据,所述转换包括以下至少一种:旋转、裁剪、亮度调整、色彩调整;
所述第一应用程序的虚拟接口实例将接收到的第二响应数据作为所述第一应用程序的第一响应数据。
7.一种多应用访问相机的装置,其特征在于,包括:应用程序、虚拟相机层和真实相机;其中,所述虚拟相机层,用于:
接收多个应用程序同时发送的第一处理请求,所述虚拟相机层是应用程序和真实相机之间的逻辑处理层,所述虚拟相机层中包括对真实相机的应用程序接口封装得到的虚拟接口,所述虚拟接口对应多个虚拟接口实例,每个所述虚拟接口实例用于接收一个应用程序的第一处理请求;
将多个所述第一处理请求合并为第二处理请求;
根据所述第二处理请求对真实相机进行操作得到第二响应数据;
根据所述第二响应数据和每个所述应用程序的第一处理请求,生成针对每个应用程序的第一响应数据;
通过每个所述虚拟接口实例将所述第一响应数据分别发送给对应的所述应用程序。
8.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储计算机执行指令的存储器;
当所述处理器执行所述计算机执行指令时,使所述电子设备实现权利要求1至6中任一项所述的方法。
9.一种计算机程序,其特征在于,所述计算机程序用于实现如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机可读存储介质中的所述计算机执行指令由电子设备的处理器执行时,使得电子设备实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632933.9A CN116360915A (zh) | 2021-12-28 | 2021-12-28 | 多应用访问相机的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632933.9A CN116360915A (zh) | 2021-12-28 | 2021-12-28 | 多应用访问相机的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116360915A true CN116360915A (zh) | 2023-06-30 |
Family
ID=86939348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111632933.9A Pending CN116360915A (zh) | 2021-12-28 | 2021-12-28 | 多应用访问相机的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116360915A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394451A (zh) * | 2024-06-24 | 2024-07-26 | 广东朝歌智慧互联科技有限公司 | 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备 |
-
2021
- 2021-12-28 CN CN202111632933.9A patent/CN116360915A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394451A (zh) * | 2024-06-24 | 2024-07-26 | 广东朝歌智慧互联科技有限公司 | 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备 |
CN118394451B (zh) * | 2024-06-24 | 2024-09-17 | 广东朝歌智慧互联科技有限公司 | 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021073151A1 (zh) | 基于多网通信的数据传输方法及相关设备 | |
US20220214932A1 (en) | Methods, devices and computer storage media for inter-mini program platform communication | |
CN109068059B (zh) | 一种调用相机的方法、移动终端及存储介质 | |
CN115202834B (zh) | 任务迁移的系统及方法 | |
CN113784049B (zh) | 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质 | |
CN113626522A (zh) | 数据同步方法、装置、介质及设备 | |
CN113032766A (zh) | 应用权限管理的方法和装置 | |
CN113360807B (zh) | 混合模式移动应用的页面显示方法、装置及相关设备 | |
US20220245005A1 (en) | Methods, devices and computer storage media for inter-mini program platform discovery | |
CN114205529A (zh) | 一种单摄像头的调用方法、装置、终端和可读存储介质 | |
CN116360915A (zh) | 多应用访问相机的方法及设备 | |
CN117453582A (zh) | 数据传输方法、设备及存储介质 | |
CN114296646B (zh) | 基于io业务的缓存方法、装置、服务器和存储介质 | |
CN114489896B (zh) | 内容显示方法、装置、存储介质及电子设备 | |
CN113347450B (zh) | 一种多应用共享音视频设备的方法、装置和系统 | |
EP4447458A1 (en) | Video stream pushing method and apparatus, and terminal device and storage medium | |
CN115589527B (zh) | 自动驾驶图像发送方法、装置、电子设备和计算机介质 | |
CN115834584B (zh) | 跨网数据传输方法、装置、设备及介质 | |
CN114051024B (zh) | 文件后台续传方法、装置、存储介质及电子设备 | |
CN116016487A (zh) | 文件跨端处理方法、装置、存储介质及电子设备 | |
CN115617537A (zh) | 一种数据传输方法及装置、存储介质 | |
CN111291379A (zh) | 基于Android的车载系统应用检测方法、装置及电子设备 | |
CN115242970B (zh) | 车机摄像头数据共享系统、方法、电子设备及存储介质 | |
CN115225916B (zh) | 视频处理方法、装置及设备 | |
CN117215730B (zh) | 数据传输方法、装置、设备及存储介质 |
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 |