CN117729425A - 一种摄像头的分配方法及电子设备 - Google Patents

一种摄像头的分配方法及电子设备 Download PDF

Info

Publication number
CN117729425A
CN117729425A CN202310492723.7A CN202310492723A CN117729425A CN 117729425 A CN117729425 A CN 117729425A CN 202310492723 A CN202310492723 A CN 202310492723A CN 117729425 A CN117729425 A CN 117729425A
Authority
CN
China
Prior art keywords
camera
module
functional module
function
close
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
Application number
CN202310492723.7A
Other languages
English (en)
Inventor
袁文波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310492723.7A priority Critical patent/CN117729425A/zh
Publication of CN117729425A publication Critical patent/CN117729425A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Telephone Function (AREA)

Abstract

本申请实施例提供一种摄像头的分配方法及电子设备,涉及电子技术领域,用于解决其他功能模块退出使用摄像头之后,无法及时恢复近距离观看提醒功能的问题。该方法应用电子设备,电子设备包括摄像头,以及支持使用摄像头实现对应功能的第一功能模块和第二功能模块;第一功能模块对应的第一功能处于开启的状态,且当前摄像头被分配给第二功能模块。该方法包括:获取针对第二功能模块的第一操作;响应于第一操作,将摄像头从第二功能模块释放,并将摄像头分配给所述第一功能模块。

Description

一种摄像头的分配方法及电子设备
技术领域
本申请实施例涉及电子技术领域,尤其涉及一种摄像头的分配方法及电子设备。
背景技术
用户使用电子设备时,如果眼睛距离电子设备显示屏的距离过近,则容易损害用户的视力。因此,为了在用户使用电子设备时保护用户的视力,电子设备可以在用户使用电子设备时对用户眼睛与电子设备显示屏的距离进行监控,并在检测到用户眼睛与显示屏之间距离过近时进行提醒。
相关技术中,为了实现近距离观看提醒这一功能,可以使用摄像头来获取显示屏前的图像。而电子设备的摄像头通常同时只能被一个功能模块使用。在打开近距离观看提醒功能的前提下,如果有其他功能模块需要使用该摄像头,并且其他功能模块的摄像头使用优先权高于近距离观看提醒模块,则近距离观看提醒功能将会被迫中断。关于如何恢复近距离观看提醒功能,成为亟待解决的技术问题。
发明内容
本申请实施例提供一种摄像头的分配方法及电子设备,用于解决其他功能模块退出使用摄像头之后,无法及时恢复近距离观看提醒功能的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种摄像头的分配方法,该方法应用于电子设备,该电子设备包括摄像头,以及支持使用摄像头实现对应功能的第一功能模块和第二功能模块;第一功能模块对应的第一功能处于开启的状态,且当前摄像头被分配给第二功能模块。该方法包括:
在摄像头被分配给第二功能模块的情况下,如果第二功能模块需要退出使用摄像头,用户可以针对第二功能模块发起第一操作。电子设备响应于第一操作,将摄像头从第二功能模块释放。由于第一功能模块对应的第一功能处于开启状态,因此,电子设备在释放摄像头之后,还会将摄像头分配给第一功能模块。从而,第一功能模块可以使用摄像头实现第一功能。这样,第一功能模块可以在摄像头被释放之后,及时的调用摄像头来实现第一功能。同时,第一功能模块不需要持续尝试打开摄像头,可以避免cpu资源的浪费。
在第一方面的一种可能的实施方式中,电子设备还包括摄像头功能模块,上述响应于第一操作,将摄像头从第二功能模块释放,并将摄像头分配给第一功能模块,具体可以包括:
摄像头功能模块响应于第一操作,将摄像头从第二功能模块释放,并触发向第一功能模块发送摄像头被释放的通知消息。第一功能模块接收到该通知消息之后,可以感知到摄像头被释放。之后,第一功能模块即可调用摄像头。第一功能模块基于通知消息向摄像头功能模块发送第一摄像头调用指令。响应于第一摄像头调用指令,摄像头功能模块将摄像头分配给第一功能模块。这样,在其他功能模块释放摄像头之后,摄像头功能模块可以触发向第一功能模块发送通知消息,以告知第一功能模块摄像头被释放的消息,便于第一功能模块可以及时的调用摄像头,以启动第一功能。
在第一方面的一种可能的实施方式中,第一功能模块对于摄像头的使用优先权低于第二功能模块对于摄像头的使用优先权。这样,在第一功能模块正在使用摄像头的情况下,如果第二功能模块请求调用摄像头,电子设备将会将摄像头的使用权分配给第二功能模块。即,允许第二功能模块抢占第一功能模块对于摄像头的使用优先权。而如果第二功能模块正在使用摄像头的情况下,如果第一功能模块请求调用摄像头,电子设备将不允许第一功能模块抢占第二功能模块对于摄像头的使用权。
在第一方面的另一种可能的实施方式中,在上述获取针对第二功能模块的第一操作之前,上述方法还包括:获取针对第二功能模块的第二操作。响应于第二操作,电子设备将摄像头分配给第二功能模块。
在第一方面的另一种可能的实施方式中,在获取针对第二功能模块的第二操作之前,上述方法还包括:获取针对第一功能模块的第三操作。由于针对第一功能模块的第三操作是在针对第二功能模块的第一操作之前发生,即表示摄像头当前未被分配给其他功能模块。因此,响应于第三操作,电子设备启动第一功能,并且可以将摄像头分配给第一功能模块。也就是说,在该实施方式中,上述获取到针对第二功能模块的第二操作之前,摄像头已经被分配给第一功能模块。上述响应于第二操作,将摄像头分配给第二功能模块,具体可以包括:响应于第二操作,电子设备需要先将摄像头从第一功能模块释放。然后才可以将摄像头分配给第二功能模块。
在该方案中,如果是先打开第一功能,那么摄像头将会被分配给第一功能模块。之后再打开第二功能模块对应的功能,则第二功能模块将会抢占摄像头的使用权,使第一功能暂时中断。此时,需要将摄像头从第一功能模块释放,然后将摄像头分配给第二功能模块。再然后,在第二功能模块释放摄像头时,通知第一功能模块摄像头被释放的消息,使第一功能模块可以及时的重新调用摄像头,恢复第一功能。
在第一方面的另一种可能的实施方式中,如果第一功能模块调用摄像头在前,第二功能模块调用摄像头在后,那么在响应于第二操作,将摄像头分配给第二功能模块之前,上述方法还可以包括:判断第一功能模块与第二功能模块对于摄像头的使用优先权。在该实施方式中,电子设备具体可以在确定第二功能模块对于摄像头的使用优先权高于第一功能模块之后,再响应于第二操作,将摄像头分配给第二功能模块。
在第一方面的另一种可能的实施方式中,电子设备还包括摄像头功能模块。在获取针对第一功能模块的第三操作之后,上述方法还可以包括:第一功能模块发起注册摄像头释放回调函数的第一注册请求。响应于第一注册请求,电子设备可以添加第一功能模块对摄像头释放回调函数的注册记录。这样,便于在调用摄像头释放回调函数的时候,基于注册记录可以向第一功能模块发送通知消息。之后,在摄像头被释放之后,摄像头功能模块可以触发调用摄像头释放回调函数,并且,基于该注册记录,调用摄像头释放回调函数之后可以向第一功能模块发送摄像头被释放的通知消息。
在该方案中,在第一功能模块在启动第一功能时,即可注册摄像头释放回调函数。电子设备响应于第一功能模块发起的注册摄像头释放回调函数的注册请求,可以在电子设备中添加第一功能模块对摄像头释放回调函数的注册记录。之后,如果第一功能模块的摄像头使用权被其他功能模块(如第二功能模块)抢占,在该其他功能模块释放摄像头时,电子设备可以调用该摄像头释放回调函数,向第一功能模块发送摄像头被释放的通知消息。从而,使第一功能模块可以及时的感知到摄像头被释放,及时重新调用摄像头,实现第一功能。
在第一方面的另一种可能的实施方式中,电子设备还包括摄像头功能模块。第一功能启动在前,第二功能模块调用摄像头在后。由于第一功能模块启动时,摄像头处于空闲状态,因此电子设备可以直接将摄像头分配给第一功能模块,即第一功能模块可以获得摄像头的使用权。但是之后,第二功能模块调用摄像头,则摄像头使用权将会被分配给第二功能模块,即摄像头使用权被第二功能模块抢占。在该实施方式中,第一功能模块可以在摄像头的使用权被抢占的时候,再注册摄像头释放回调函数。具体的,在上述响应于第二操作,将摄像头从第一功能模块释放之后,上述方法还包括:第一功能模块发起注册摄像头释放回调函数的第二注册请求。响应于第二注册请求,添加第一功能模块对摄像头释放回调函数的注册记录。同样的,在摄像头被释放之后,摄像头功能模块可以触发调用摄像头释放回调函数,并且,基于该注册记录,调用摄像头释放回调函数之后可以向第一功能模块发送摄像头被释放的通知消息。
这样,第一功能模块在摄像头使用权被其他功能模块抢占的时候再注册摄像头释放回调函数,也可以实现在第二功能模块退出使用摄像头时,由摄像头功能模块触发调用摄像头释放回调函数,向第一功能模块发送通知消息。同样可以使第一功能模块可以及时的感知到摄像头被释放,及时重新调用摄像头,恢复第一功能。
在第一方面的另一种可能的实施方式中,电子设备还包括摄像头功能模块。第一功能模块请求调用摄像头也可能是在摄像头被分配给第二功能模块之后。即,在响应于第二操作,将摄像头分配给第二功能模块之后,上述方法还包括:获取针对第一功能模块的第四操作。响应于第四操作,电子设备启动第一功能。由于当前摄像头处于占用状态,电子设备无法将摄像头分配给第一功能模块。因此,在启动第一功能在之后,第一功能模块可以先注册摄像头释放回调函数,以在其他功能模块释放摄像头的时候,及时感知到摄像头被释放的消息。即,响应于第四操作,第一功能模块还会发起摄像头释放回调函数的第三注册请求。响应于第三注册请求,电子设备添加第一功能模块对摄像头释放回调函数的注册记录。同样的,在摄像头被释放之后,摄像头功能模块可以触发调用摄像头释放回调函数,并且,基于该注册记录,调用摄像头释放回调函数之后可以向第一功能模块发送摄像头被释放的通知消息。这样,可以使第一功能模块在摄像头被其他功能模块释放之后及时感知到摄像头被释放的消息,及时的调用摄像头,实现第一功能。
在第一方面的另一种可能的实施方式中,在将摄像头分配给第二功能模块的情况下,电子设备获取到针对第一功能模块的第四操作之后,响应于第四操作,电子设备启动第一功能,并判断第一功能模块与第二功能模块对于摄像头的使用优先权。在确定第一功能模块对于摄像头的使用优先权低于第二功能模块的情况下,电子设备不会立即响应于第四操作将摄像头分配给第一功能模块,而是由第一功能模块先注册摄像头释放回调函数。之后,在第二功能模块释放摄像头之后,电子设备可以调用摄像头释放回调函数,并向第一功能模块发送通知消息。从而,使第一功能模块可以在接收到通知消息之后,及时的调用摄像头,之后,电子设备可以将摄像头分配给第一功能模块。
在第一方面的另一种可能的实施方式中,第一功能模块包括近距离观看提醒模块。在该实施方式中,在将摄像头分配给第一功能模块(即近距离观看提醒模块)之后,上述方法还包括:近距离观看提醒模块获取摄像头采集的图像。并且,近距离观看提醒模块分析图像,根据分析图像得到的结果,对用户的观看距离进行提醒。
第二方面,提供了一种摄像头的分配方法,该方法应用于电子设备,该电子设备包括摄像头,以及摄像头功能模块、支持使用摄像头实现对应功能的第一功能模块和第二功能模块和;第一功能模块对应的第一功能处于开启的状态,且当前摄像头被分配给第二功能模块。
该方法包括:
第二功能模块向摄像头功能模块发送摄像头释放指令;响应于第二功能模块发送的摄像头释放指令,摄像头功能模块释放摄像头,并将摄像头分配给第一功能模块。这样,第一功能模块可以在摄像头被释放之后,及时的调用摄像头来实现第一功能。同时,第一功能模块不需要持续尝试打开摄像头,可以避免cpu资源的浪费。
在第二方面的另一种可能的实现方式中,上述将摄像头分配给第一功能模块,具体可以包括:摄像头功能模块向第一功能模块发送摄像头被释放的通知消息。第一功能模块基于通知消息,向摄像头功能模块发送第二摄像头调用指令。响应于第二摄像头调用指令,摄像头功能模块将摄像头分配给第一功能模块。在该方案中,在第二功能模块释放摄像头之后,由摄像头功能模块主动通知第一功能模块摄像头被释放的消息。这样可以避免第一功能模块无法及时感知摄像头被释放的消息,也可以避免第一功能模块持续尝试打开摄像头,可以避免cpu资源的浪费。
在第二方面的一种可能的实现方式中,在第二功能模块向摄像头功能模块发送摄像头释放指令之前,上述方法还包括:第二功能模块向摄像头功能模块发送第三摄像头调用指令;响应于第二摄像头调用指令,摄像头功能模块将摄像头分配给第二功能模块。第二功能模块需要使用摄像头时,可以向摄像头功能模块发送第三摄像头调用指令,之后,摄像头功能模块可以将摄像头分配给第二功能模块。
在第二方面的另一种可能的实现方式中,第一功能模块对于摄像头的使用优先权低于第二功能模块对于摄像头的使用优先权。这样,在第一功能模块正在使用摄像头的情况下,如果第二功能模块请求调用摄像头,电子设备将会将摄像头的使用权分配给第二功能模块。即,允许第二功能模块抢占第一功能模块对于摄像头的使用优先权。而如果第二功能模块正在使用摄像头的情况下,如果第一功能模块请求调用摄像头,电子设备将不允许第一功能模块抢占第二功能模块对于摄像头的使用权。
在第二方面的另一种可能的实现方式中,在第二功能模块向摄像头功能模块发送第三摄像头调用指令之前,上述方法还包括:响应于对第一功能的打开操作,第一功能模块启动第一功能。并且,第一功能模块向摄像头功能模块发送第四摄像头调用指令。摄像头功能模块在接收到第四摄像头调用指令之后,响应于第四摄像头调用指令,摄像头功能模块将摄像头分配给第一功能模块。
在该实施方式中,摄像头被分配给第一功能模块之后,第二功能模块再发起第三摄像头调用指令的情况下,则响应于该第三摄像头调用指令,摄像头功能模块需要将摄像头从第一功能模块释放,然后才可以将摄像头分配给第二功能模块。
在该方案中,如果是先打开第一功能,那么摄像头将会被分配给第一功能模块。之后再打开第二功能模块对应的功能,则第二功能模块将会抢占摄像头的使用权,使第一功能暂时中断。此时,需要将摄像头从第一功能模块释放,然后将摄像头分配给第二功能模块。再然后,在第二功能模块退出使用摄像头时,摄像头功能模块通知第一功能模块摄像头被释放的消息,使第一功能模块可以及时的重新调用摄像头,恢复第一功能。
在第二方面的另一种可能的实现方式中,电子设备还包括HIDL摄像头接口服务模块。在第一功能模块启动第一功能之后,上述方法还包括:第一功能模块向HIDL摄像头接口服务模块发送注册摄像头释放回调函数的第四注册请求。响应于该第四注册请求,注册摄像头释放回调函数添加第一功能模块对摄像头释放回调函数的注册记录。在该实施方式中,上述摄像头功能模块向第一功能模块发送摄像头被释放的通知消息,具体可以包括:摄像头功能模块触发向HIDL摄像头接口服务模块发送摄像头被释放的第一通知消息。响应于第一通知消息,HIDL摄像头接口服务模块调用摄像头释放回调函数,向第一功能模块发送摄像头被释放的第二通知消息。
在该方案中,第一功能模块在启动时即在HIDL摄像头接口服务模块中注册摄像头释放回调函数。之后,在第一功能处于开启的状态下,如果其他功能模块退出使用摄像头,摄像头功能模块通知HIDL摄像头接口服务模块,使HIDL摄像头接口服务模块调用该摄像头释放回调函数,以通知第一功能模块摄像头被释放的消息。从而,使第一功能模块可以及时的感知到摄像头被释放,及时重新调用摄像头,实现第一功能。
在第二方面的另一种可能的实现方式中,在响应于第三摄像头调用指令,摄像头功能模块将摄像头从第一功能模块释放之后,上述方法还包括:第一功能模块向HIDL摄像头接口服务模块发送注册摄像头释放回调函数的第五注册请求。响应于该第五注册请求,注册摄像头释放回调函数添加第一功能模块对摄像头释放回调函数的注册记录。在该实施方式中,上述摄像头功能模块向第一功能模块发送摄像头被释放的通知消息,具体可以包括:摄像头功能模块触发向HIDL摄像头接口服务模块发送摄像头被释放的第一通知消息。响应于第一通知消息,HIDL摄像头接口服务模块基于注册记录调用摄像头释放回调函数,向第一功能模块发送摄像头被释放的第二通知消息。
在该方案中,第一功能模块在摄像头被其他功能模块抢占时,即将摄像头从第一功能模块释放之后,第一功能模块再注册摄像头释放回调函数。这样,在第二功能模块退出使用摄像头时,摄像头功能模块也可以HIDL摄像头接口服务模块触发调用摄像头释放回调函数,基于注册记录向第一功能模块发送摄像头被释放的通知消息。同样可以使第一功能模块可以及时的感知到摄像头被释放,及时重新调用摄像头,实现第一功能。
在第二方面的另一种可能的实现方式中,第一功能模块启动也可能是在摄像头被分配给第二功能模块之后。在该实施方式中,在响应于第三摄像头调用指令,摄像头功能模块将摄像头分配给第二功能模块之后,上述方法还包括:响应于对第一功能的打开操作,第一功能模块启动第一功能。第一功能模块向HIDL摄像头接口服务模块发送第六注册请求,HIDL摄像头接口服务模块先添加第一功能模块对摄像头释放回调函数的注册记录。之后,在第二功能模块向摄像头功能模块发送摄像头释放指令时,再由摄像头功能模块触发HIDL摄像头接口服务模块调用摄像头释放回调函数,基于注册记录向第一功能模块发送摄像头被释放的通知消息。
在该方案中,第一功能模块启动时如果摄像头处于占用状态,那么第一功能模块可以先注册摄像头释放回调函数。在占用摄像头的功能模块退出使用摄像头时,由摄像头功能模块触发HIDL摄像头接口服务模块调用该摄像头释放回调函数,基于注册记录通知第一功能模块摄像头被释放的消息。这样,可以使第一功能模块在摄像头被释放之后及时的调用摄像头,实现第一功能。
第三方面,提供了一种电子设备,包括:处理器、摄像头和存储器;存储器、摄像头分别与处理器耦合。该摄像头用于采集图像。该存储器用于存储计算机执行指令,当该电子设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该电子设备执行如上述第一方面中任一项的摄像头的分配方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的摄像头的分配方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项的摄像头的分配方法。
第六方面,提供了一种装置(例如,该装置可以是芯片***),该装置包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存电子设备必要的程序指令和数据。该装置是芯片***时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第六方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1A为本申请实施例提供的一种用户使用智慧屏的场景示意图;
图1B为本申请实施例提供的一种智慧屏的显示界面示意图;
图1C为本申请实施例提供的一种智慧屏的显示界面示意图;
图1D为本申请实施例提供的一种智慧屏的显示界面示意图;
图1E为本申请实施例提供的一种智慧屏的显示界面示意图;
图2A为本申请实施例提供的一种电子设备的硬件结构示意图;
图2B为本申请实施例提供的一种电子设备的软件架构示意图;
图3为本申请实施例提供的近距离观看提醒模块调用摄像头的流程示意图;
图4A为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图4B为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图4C为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图5为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图6为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图7为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图8为本申请实施例提供的智慧屏的软件架构示意图;
图9为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图10为本申请实施例提供的一种摄像头的分配方法的流程示意图;
图11为本申请实施例提供的一种芯片***的结构示意图。
具体实施方式
用户使用电子设备时,如果眼睛距离电子设备显示屏的距离过近,则容易损害用户的视力。因此,为了在用户使用电子设备时尽可能保护用户的视力,电子设备可以在使用电子设备时对用户眼睛与电子设备显示屏的距离进行监控,并在检测到用户眼睛与显示屏之间距离过近时进行提醒。
在如图1A所示的场景中,用户10在使用智慧屏1时,智慧屏1可以监控用户的眼睛(或者面部)与显示屏之间的距离。在一些实施例中,智慧屏1在检测到用户10的眼睛与智慧屏1的显示屏的距离过近时,可以对用户10进行提醒。示例性的,智慧屏1可以在显示屏上显示如图1B所示的提示信息11,用于提醒用户观看距离。
部分青少年或者儿童可能没有足够的自制力,在使用电子设备时,就容易出现眼睛距离显示屏过近的问题。目前部分电子设备已有青少年模式或者儿童模式,专用于给青少年或者儿童使用电子设备时使用。在青少年模式或者儿童模式中,提供近距离观看提醒功能,家长用户可以通过在青少年模式或者儿童模式中,打开近距离观看模式提醒功能。
在一些实施例中,如图1C所示,智慧屏1在全部应用的显示界面12中可以显示智慧屏已安装的多个应用的应用图标。其中包括:媒体中心、设置、时钟、应用商城、儿童模式以及家庭相机等等应用对应的图标。在界面12中,用户可以选择儿童模式对应的图标12a,以进入儿童模式的功能设置界面,如图1D所示的智慧屏1提供的儿童模式的功能设置界面13。
该功能设置界面13包括儿童模式的开关14,开关14用于开启或关闭儿童模式。功能设置界面13还包括近距离观看提醒功能的开关15。开关15用于开启或关闭近距离观看提醒功能。智慧屏1的近距离观看提醒功能开启后,智慧屏1即可在儿童模式下,对观看智慧屏1的用户的眼睛与智慧屏1的显示屏之间的距离进行监控。并且,在监测到用户的眼睛与智慧屏1的显示屏之间的距离过近时,发出提示信息,如图1B所示的提示信息11。
图1D所示的功能设置界面13中还包括躺姿提醒的开关16,仅对儿童进行近距离观看和躺姿提醒的开关17,单次使用时长的设置选项18等等。其中,开关16用于开启或关闭监测用户是否处于躺姿观看智慧屏1的提醒功能,开关17用于开启或关闭是否仅对儿童进行距离和躺姿提醒的开关,设置选项18用于设置单次允许儿童使用智慧屏1的最大时长。应理解,在其他实施例中,功能设置界面13中还可以包括其他设置选项或者开关。
在一些实施例中,用户对于儿童模式应用提供的不同功能设置之后,儿童模式应用将会保存用户对于各功能的设置情况。示例性的,用户可以在图1D所示的界面中对各功能设置为以下模式:近距离观看提醒功能打开,躺姿提醒功能打开,仅对儿童进行近距离观看提醒和躺姿提醒功能关闭,以及单次使用时长限制为30分钟。之后,每次用户打开儿童模式(打开图1D所示的开关14),都会按照以上功能设置的模式进行提醒。
相关技术中,为了实现近距离观看提醒这一功能,可以使用智慧屏1的摄像头来获取显示屏前方的图像,并根据图像分析是否需要提醒用户的观看距离。在用户通过对图1D所示的开关15进行操作以开启近距离观看提醒功能之后,智慧屏1可以进入如图1D所示的界面19。同时,智慧屏1可以升起隐藏的摄像头(如图1D所示的摄像头20),进而通过该摄像头采集显示屏前方的图像。
然而,智慧屏1的摄像头通常同时只能被一个功能模块使用。在打开近距离观看提醒功能的前提下,如果有其他功能模块需要使用该摄像头,并且其他功能模块的摄像头使用优先权高于近距离观看提醒模块,此时,近距离观看提醒功能将会被迫中断。需要说明的是,在其他实施例中,上述近距离观看提醒功能也可以命名为如距离提醒功能、视力保护功能等等其他名称。
以其他功能模块是家庭相机为例,与近距离观看提醒模块相比,家庭相机对于摄像头的使用优先权高于近距离观看提醒模块。因此,在开启了近距离观看提醒功能的情况下,如果用户打开了家庭相机,那么摄像头将会被家庭相机占用。并且,在家庭相机使用摄像头的过程中,近距离观看提醒模块由于无法使用摄像头,因此近距离观看提醒将会被迫中断。也就是说,智慧屏无法继续对用户的眼睛与显示屏之间的距离进行监控并提醒。在一些实施例中,在摄像头被其他功能模块抢占时,智慧屏可以在显示屏上显示提示信息。
在开启儿童模式的近距离观看提醒功能之后,用户可以在界面13中选择“返回”选项,以返回到如图1C所示的全部应用界面12。在一些实施例中,在开启儿童模式之后,部分应用在儿童模式下可能不支持给儿童使用。因此,用户在界面13中选择“返回”选项之后,也可以返回到仅对儿童展示的全部应用界面,其中界面12中所展示的部分应用的图标不再对儿童展示。在本申请实施例中,以儿童模式下允许使用家庭相机这一功能为例进行说明。即,用户在界面13中选择“返回”选项,返回全部应用的界面时,界面中仍展示家庭相机的图标12b。
进一步的,在开启儿童模式之后,在全部应用的界面中,用户还可以选择如图1C所示的家庭相机的图标12b,以进入如图1E所示的家庭相机的界面21。在打开家庭相机,进入界面21之后,家庭相机将会抢占智慧屏的摄像头的使用权,导致近距离观看提醒模块无法使用摄像头进行近距离观看提醒。在该场景下,智慧屏1可以在显示屏上显示如图1E所示的界面的提示信息22,用于提示用户当前近距离观看提醒功能暂时无法使用。
用户可以通过在图1E所示的界面21中选择“退出”选项23,以退出家庭相机。用户退出家庭相机之后,摄像头将会被释放。此时,摄像头再次变为空闲。由于近距离观看提醒功能仍处于开启状态,因此在家庭相机退出使用摄像头之后,智慧屏应当恢复近距离观看提醒功能。但是,近距离观看提醒模块通常无法及时感知摄像头被释放。也就是说,在家庭相机退出使用摄像头之后,近距离观看提醒模块无法及时调用摄像头,即,智慧屏无法及时的恢复近距离观看提醒功能。
在图1E所示的家庭相机的界面中还包括家庭相机提供的功能选项“拍摄”选项24,“录像”选项25,以及“图库”选项26。其中,“拍摄”选项24用于用户使用家庭相机拍摄图像;“录像”选项25用于用户使用家庭相机录制视频;“图库”选项26用于用户查看使用家庭相机拍摄的图像和视频等。用户通过“拍摄”选项24或“录像”选项25使用家庭相机拍摄图像或录制视频,以及用户使用“图库”选项26查看图像的具体操作过程,可以参照相关技术中的描述,在本申请实施例中不予赘述。应理解,在其他实施例中,家庭相机的功能界面还可以包括其他功能选项。
基于此,本申请实施例提供一种摄像头的分配方法,在第一功能模块对应的第一功能处于开启的状态,并且当前摄像头被分配给第二功能模块的前提下,在检测到针对第二功能模块的第一操作之后,智慧屏响应于第一操作,将摄像头从第二功能模块释放。然后,由于第一功能处于开启的状态,智慧屏将摄像头分配给第一功能模块,以使第一功能模块使用摄像头实现第一功能。这样,只要第一功能处于开启的状态,则智慧屏可以在其他功能模块退出使用摄像头(即释放摄像头)之后,将摄像头分配给第一功能模块。从而使第一功能模块可以及时的调用摄像头,实现第一功能。
示例性的,第一功能模块具体可以是上述近距离观看提醒模块或者其他需要实时感知摄像头是否可用的功能模块,第二功能模块具体可以是上述家庭相机功能模块、视频通话功能模块或者其他需要使用摄像头实现对应功能的模块。在一些实施例中,第二功能模块对于摄像头的使用优先权高于第一功能模块。第一功能模块启动之后可以在电子设备的后台常驻。
在一些实施例中,上述方法可以应用于包括摄像头的电子设备。示例性的,电子设备可以是手机、平板电脑、个人计算机(personal computer,PC)、智慧屏、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、智能手表等穿戴设备、人工智能(artificial intelligence,AI)音箱以及车载设备,也可以是各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器等设备,还可以是具有移动办公功能的设备、具有智能家居功能的设备、具有影音娱乐功能的设备、支持智能出行的设备等。本申请实施例对该设备的具体形态不作特殊限制。
如图2A所示为本申请一实施例提供的电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器130,电源模块140,通信接口150,无线通信模块160,音频模块170,显示屏180,摄像头190,以及按键191等。
示例性的,电子设备100可以是上述智慧屏1。可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的摄像头的分配方法。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器130可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器130的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器130可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电源模块140,可以用于接收电源输入,并为处理器110、内部存储器130、无线通信模块160、显示屏180和摄像头190等供电。在一些实施例中,电源模块140也可以设置于处理器110中。
通信接口150,可以用于与控制设备、机顶盒、路由器和U盘等外部设备通讯。通信接口150可以为网口或通用串行总线(universal serial bus,USB)接口等任意可能的接口。
USB接口是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线转为电磁波辐射出去。
电子设备100可以通过音频模块170,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。音频模块170可以包括扬声器170A和麦克风170B。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或进行视频会议等。
麦克风170B,也称“话筒”,用于将声音信号转换为电信号。当视频通话、视频会议或使用语音助手时,用户可以通过人嘴靠近麦克风170B发声,将声音信号输入到麦克风170B。电子设备100可以设置至少一个麦克风170B。在另一些实施例中,电子设备100可以设置两个麦克风170B,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170B,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
显示屏180用于显示图像,视频等。电子设备100通过GPU,显示屏180,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏180和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
摄像头190用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头190,N为大于1的正整数。在一些实施例中,摄像头190可以为升降式摄像头。通常,升降式摄像头隐藏在电子设备100的内部,对用户不可见。当用户使用电子设备100与其他用户进行视频通话或视频会议时,升降式摄像头可以从电子设备100的顶部弹出,从而升降式摄像头可以采集用户图像,并通过无线通信模块160和天线等将用户图像发送至其他用户的设备。在另一些实施例中,摄像头190也可以是嵌入设置在电子设备100的显示屏内部。
按键191包括开机键,音量键以及设置键等。按键191可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
以下实施例中的摄像头的分配方法均可以在具备上述硬件结构的电子设备100中实现。
图2B是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime,ART)和原生C/C++库,硬件抽象层(HardwareAbstract Layer,HAL)以及内核层。
应用程序层可以包括一系列应用程序包。
如图2B所示,应用程序包可以包括媒体中心、设置、时钟、应用商城、二通模式、家庭相机、第一功能模块以及第二功能模块等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,资源管理器,通知管理器,活动管理器,输入管理器等。
窗口管理器提供窗口管理服务(Window Manager Service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入***的中转站。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
活动管理器可以提供活动管理服务(Activity Manager Service,AMS),AMS可以用于***组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
输入管理器可以提供输入管理服务(Input Manager Service,IMS),IMS可以用于管理***的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
安卓运行时包括核心库和安卓运行时。安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(ahead or time,AOT)编译技术和及时(just in time,JIT)编译技术。
核心库主要用于提供基本的Java类库的功能,例如基础数据结构、数学、IO、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了API。
原生C/C++库可以包括多个功能模块。例如:表面管理器(surface manager),媒体框架(Media Framework),libc,OpenGL ES、SQLite、Webkit等。
其中,表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES提供应用程序中2D图形和3D图形的绘制和操作。SQLite为电子设备100的应用程序提供轻量级关系型数据库。
硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。硬件抽象层可以包括显示模块、音频模块、摄像头模块(camera HAL)以及蓝牙模块。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
在本申请实施例中,儿童模式、家庭相机等应用需要使用摄像头时,可以通过framework层的摄像头服务模块(camera server)调用HAL层的摄像头模块(camera HAL),再由camera HAL调用摄像头硬件(camera hardware)来实现。进一步的,camera HAL调用内核层的摄像头驱动,以驱动摄像头为应用提供对应的功能服务。
本申请实施例提出的摄像头的分配方法,具体可以应用于需要使用摄像头实现的第一功能模块启动之后,由于摄像头被其他摄像头使用优先权更高的第二功能模块抢占使用,而导致第一功能模块使用摄像头实现的功能被迫中断的场景。在该场景下,如果第二功能模块退出使用摄像头,则表示摄像头被释放,回到空闲的状态。在本申请实施例提供的摄像头的分配方法中,在检测到第二功能模块退出使用摄像头的情况下,可以向第一功能模块发送第一通知消息,以通知第一功能模块摄像头被释放。这样,可以使第一功能模块及时感知到摄像头被释放,然后重新调用摄像头,以及时恢复第一功能模块使用摄像头实现的功能。
以第一功能模块是近距离观看提醒模块,近距离观看提醒模块调用摄像头实现近距离观看提醒功能为例,对近距离观看提醒模块调用摄像头的具体过程进行介绍。近距离观看提醒模块可以是儿童模式应用中的一个功能模块。或者,近距离观看提醒模块也可以是一个独立的应用。如图3所示,为本申请一些实施例中近距离观看提醒模块调用摄像头的具体实现过程。
响应于对近距离观看提醒功能的打开操作,近距离观看提醒模块向摄像头功能模块发送摄像头调用指令。
其中,摄像头功能模块可以包括framework层的camera server模块和HAL层的camera HAL模块。
摄像头服务模块响应于摄像头调用指令,启动摄像头。并且,响应于该摄像头调用指令,摄像头功能模块还会将摄像头分配给近距离观看提醒模块。
需要说明的是,摄像头被分配给近距离观看提醒模块之后,近距离观看提醒模块可以对摄像头进行控制,并与摄像头进行图像传输。
摄像头采集图像。摄像头向摄像头功能模块发送图像。之后,摄像头功能模块向近距离观看提醒模块发送摄像头采集的图像。
近距离观看提醒模块对图像进行分析。近距离观看提醒模块根据分析结果确定是否需要提醒用户注意观看距离。
对用户进行近距离观看提醒,主要是对用户的眼睛与显示屏之间的距离进行监控,并在用户的眼睛与显示屏之间的距离过近时,提醒用户注意观看距离。因此,在一些实施例中,具体可以检测用户的眼睛与显示屏之间的距离是否小于预设距离,决定是否需要对用户的观看距离进行提醒。进一步的,如果检测到用户的眼睛与显示屏之间的距离小于预设距离,智慧屏可以对用户进行近距离观看提醒。其中,分析图像确定用户的眼睛与显示屏之间的距离,具体可以通过图像分析等算法、相关的神经网络模型等实现,其具体实现过程,可以参照相关技术中的介绍,在本申请实施例中不予赘述。
智慧屏的摄像头通常设置在智慧屏的显示屏附近,如图1D所示的摄像头20设置在智慧屏的显示屏的上方,为隐藏式的升降摄像头。那么,如果用户的眼睛与显示屏的距离越近,在通过摄像头采集的图像中,用户的眼睛在图像中所采集的图像中的占比越大。相反,如果用户的眼睛与显示屏的距离越远,那么用户的眼睛在摄像头所采集的图像中的占比越小。因此,在另一些实施例中,近距离观看提醒模块也可以检测用户的眼睛在摄像头所采集的图像中的占比是否大于预设占比,来决定是否需要对用户的观看距离进行提醒。进一步的,如果确定用户的眼睛在摄像头所采集的图像中的占比大于预设占比,智慧屏可以对用户进行近距离观看提醒。
应理解,上述实施例中的预设距离、预设占比均可以根据实际情况设置为任意合适的数值,在本申请实施例中不予限定。在其他实施例中,智慧屏也可以通过其他方式分析摄像头所采集的图像,并根据分析结果决定是否需要对用户的观看距离进行提醒。
如果根据分析结果确定需要进行提醒,则近距离观看提醒模块发出提示信息。如果根据分析结果确定不需要进行提醒,可以继续接收新的图像进行分析,并判断是否需要进行提醒。
以下对本申请实施例中可能涉及的技术名词进行简单说明。
硬件抽象层接口定义语言,(HAL interface definition language,HIDL),是Android framework与Android HAL之间的接口。HIDL旨在用于进程间的通信。
以下将结合附图对本申请实施例提供的摄像头的分配方法进行详细说明。请参照图4A,为本申请实施例提供的摄像头的分配方法的流程示意图。在该实施例中,以电子设备是智慧屏,第一功能模块是近距离观看提醒模块,第二功能模块是家庭相机功能模块为例进行说明。应理解,在其他实施例中,第一功能模块和第二功能模块还可以是其他功能模块。该方法包括S201-S210,其中:
S201.智慧屏启动。
S202.智慧屏获取针对近距离观看提醒模块的启动操作。
在一些实施例中,S202具体可以是用户针对近距离观看提醒模块执行启动操作。在一些实施例中,近距离观看提醒模块可以是儿童模式的一个功能。示例性的,用户可以在图1D所示的界面中打开开关15,以启动近距离观看提醒功能。
S203.响应于针对近距离观看提醒模块的启动操作,智慧屏启动近距离观看提醒功能。
S204.智慧屏将摄像头分配给近距离观看提醒模块。
S205.智慧屏获取针对家庭相机功能模块的启动操作。
在一些实施例中,家庭相机功能模块可以在启动之后调用摄像头。因此,智慧屏可以在获取到针对家庭相机功能模块的启动操作之后,启动家庭相机功能模块。之后,为了实现家庭相机的功能,家庭相机功能模块将会发送摄像头的摄像头调用指令。
S206.响应于针对家庭相机功能模块的启动操作,将摄像头从近距离观看提醒模块释放。
S207.智慧屏将摄像头分配给家庭相机功能模块。
智慧屏将摄像头分配给家庭相机功能模块之后,家庭相机的相关功能即可使用。
S208.智慧屏接收针对家庭相机功能模块的退出操作。
需要说明的是,上述针对近距离观看提醒模块的启动操作,以及针对家庭相机功能模块的启动操作和退出操作,也可以以其他名称命名。示例性的,针对家庭相机功能模块的退出操作可以命名为第一操作,针对家庭相机功能模块的启动操作可以命名为第二操作,以及,针对近距离观看提醒模块的启动操作可以命名为第三操作,等等。
S209.响应于针对家庭相机功能模块的退出操作,智慧屏将摄像头从家庭相机功能模块释放。
由于近距离观看提醒功能仍处于开启状态,因此,摄像头从家庭相机功能模块释放之后,智慧屏可以再重新将摄像头分配给近距离观看提醒模块,如S210。
S210.智慧屏将摄像头分配给近距离观看提醒模块。
可以理解的,在S210之后,近距离观看提醒模块可以获取摄像头采集的图像,并基于该图像分析是否需要提醒用户观看距离。具体的,近距离观看提醒模块在分析图像确定用户的观看距离过近时,向用户发出提醒信息。
在一些实施例中,上述S210具体可以是智慧屏先向近距离观看提醒模块发送摄像头被释放的通知消息,然后再由近距离观看提醒模块基于通知消息对摄像头发起摄像头调用指令。由于当前摄像头已被释放,处于空闲状态,因此响应于该近距离观看提醒模块发送的摄像头调用指令,智慧屏可以将摄像头分配给近距离观看提醒模块。需要说明的是,为了区分不同时刻,不同功能模块发送的摄像头调用指令,可以用“第一”、“第二”来区分不同的摄像头调用指令。示例性的,上述近距离观看提醒模块基于通知消息发送的摄像头调用指令可以命名为第一摄像头调用指令。
进一步的,在一些实施例中,智慧屏在摄像头被释放之后向近距离观看提醒模块发送通知消息,可以通过调用摄像头释放回调函数实现。可以理解的,在智慧屏调用摄像头释放回调函数向近距离观看提醒模块发送通知消息之前,近距离观看提醒模块需要先注册摄像头释放回调函数。该摄像头释放回调函数是用于在摄像头被释放之后调用,并且调用摄像头释放回调函数之后,可以触发向注册了摄像头释放回调函数的功能模块发送通知消息。
近距离观看提醒模块注册了摄像头释放回调函数,即可在摄像头被占用的时候,等待智慧屏调用摄像头释放回调函数以获得摄像头被释放的通知消息。并且,近距离观看提醒模块在接收到摄像头被释放的通知消息之后,可以调用摄像头。在一些实施例中,近距离观看提醒模块可以在启动近距离观看提醒功能的同时,注册摄像头释放回调函数。这样,如果近距离观看提醒模块在使用摄像头的过程中,摄像头的使用权被其他功能模块抢占,也可以在其他功能模块释放摄像头之后,获取智慧屏通过调用摄像头释放回调函数发送的摄像头被释放的消息。
即,在一些实施例中,在上述S202之后,上述方法还包括:近距离观看提醒模块发起对摄像头释放回调函数的注册请求。响应于该注册请求,智慧屏可以添加近距离观看提醒模块注册摄像头释放回调函数的注册记录。之后,只要检测到摄像头被释放(如上述S209)之后,智慧屏即可调用摄像头释放回调函数,并基于注册记录向注册了该摄像头释放回调函数(近距离观看提醒模块)发送摄像头被释放的通知消息。
在另一些实施例中,近距离观看提醒模块也可以在摄像头使用权被其他功能模块抢占之后,再注册上述摄像头释放回调函数。即,在一些实施例中,在上述S206之后,上述方法还包括:近距离观看提醒模块发起对摄像头释放回调函数的注册请求。同样的,响应于该注册请求,智慧屏可以添加近距离观看提醒模块对摄像头释放回调函数的注册记录。这样,在上述S209之后,智慧屏也可以调用摄像头释放回调函数,并基于注册记录向注册了该摄像头释放回调函数(近距离观看提醒模块)发送摄像头被释放的通知消息。
在本申请实施例提供的技术方案中,近距离观看提醒模块在启动的同时,或者在摄像头使用权被其他功能模块抢占的时候注册摄像头释放回调函数,近距离观看提醒模块都可以在摄像头被其他功能模块(如家庭相机功能模块)释放之后,及时的感知到智慧屏通过调用摄像头释放回调函数发送的通知消息。这样,便于近距离观看提醒模块及时的重新请求调用摄像头,以便智慧屏重新将摄像头分配给近距离观看提醒模块。
在本申请实施例提供的技术方案中,在近距离观看提醒功能开启的情况下,如果摄像头被分配给家庭相机或其他功能模块,则在家庭相机或者其他功能模块释放摄像头之后,智慧屏将会重新将摄像头分配给近距离观看提醒模块。这样,可以使近距离观看提醒模块可以在摄像头被释放之后及时的重新获得摄像头的使用权,以便实现近距离观看提醒功能。同时,在摄像头被其他功能模块占用的情况下,近距离观看提醒模块不需要持续尝试打开摄像头,可以避免cpu资源的浪费。
上述实施例中是以近距离观看提醒模块启动在前,家庭相机功能模块启动在后进行说明的。在另一些实施例中,近距离观看提醒模块启动也可能是在家庭相机功能模块启动之后。也就是说,在近距离观看提醒模块启动之前,智慧屏已经将摄像头分配给了家庭相机功能模块,近距离观看提醒模块启动时,摄像头处于被占用的状态。此时,近距离观看提醒模块可以先在后台启动近距离观看提醒功能模块,但是由于摄像头被占用,因此,近距离观看提醒功能无法正常进行提醒。同时,近距离观看提醒模块可以请求注册摄像头释放回调函数,以便智慧屏在摄像头被释放之后,通过调用摄像头释放回调函数,向近距离观看提醒模块发送摄像头被释放的通知消息。
请参照图4B,为本申请实施例提供的摄像头的分配方法的流程示意图。该方法包括S301-S309。其中:
S301.智慧屏启动。
S302.智慧屏获取针对家庭相机功能模块的启动操作。
S303.响应于针对家庭相机功能模块的启动操作,智慧屏将摄像头分配给家庭相机功能模块。
S304.智慧屏获取针对近距离观看提醒功能模块的启动操作。
S305.响应于针对近距离观看提醒模块的启动操作,智慧屏启动近距离观看提醒功能。
由上述实施例的说明可知,当前摄像头被家庭相机功能模块占用,近距离观看提醒模块无法获得摄像头的使用权,因此近距离观看提醒功能无法正常使用。因此,近距离观看提醒模块可以先注册摄像头释放回调函数,即,近距离观看提醒模块发起对摄像头释放回调函数的注册请求。在一些实施例中,在S304之后,如果检测到当前摄像头处于被占用,则近距离观看提醒模块可以发起对摄像头释放回调函数的注册请求。
S306.智慧屏添加近距离观看提醒模块对摄像头释放回调函数的注册记录。
需要说明的是,上述S307具体可以包括:智慧屏接收近距离观看提醒模块发起的对摄像头释放回调函数的注册请求;响应于该注册请求,智慧屏添加近距离观看提醒模块对摄像头释放回调函数的注册记录。
S307.智慧屏获取针对家庭相机功能模块的退出操作。
S308.响应于针对家庭相机功能模块的退出操作,智慧屏将摄像头从家庭相机功能模块释放。
S309.智慧屏调用摄像头释放回调函数,基于注册记录将摄像头分配给近距离观看提醒模块。
之后,近距离观看提醒模块可以基于摄像头实现近距离观看提醒功能。
S301-S309的具体实现方式,可以参照S201-S210的实施例中的说明,在此不予赘述。
在本申请实施例提供的技术方案中,如果摄像头被分配给家庭相机或其他功能模块之后,用户启动近距离观看提醒功能模块,则近距离观看提醒模块无法直接获得摄像头的使用权。此时,在启动近距离观看提醒功能模块的同时,近距离观看提醒模块注册摄像头释放回调函数。这样,可以使近距离观看提醒模块可以在摄像头被释放之后及时的感知摄像头被释放,及时调用摄像头,获得摄像头的使用权,以便实现近距离观看提醒功能。同时,在摄像头被其他功能模块占用的情况下,近距离观看提醒模块不需要持续尝试打开摄像头,可以避免cpu资源的浪费。
进一步的,以下以电子设备内部的功能模块之间的交互进行说明。请参照图4C,为本申请实施例提供的摄像头的分配方法的流程示意图。在该实施例中,以电子设备是智慧屏,第一功能模块是近距离观看提醒模块,第二功能模块是家庭相机功能模块为例进行说明。应理解,在其他实施例中,第一功能模块和第二功能模块还可以是其他功能模块。该方法包括S401-S413,其中:
S401.响应于对近距离观看提醒功能的打开操作,近距离观看提醒模块向摄像头功能模块发送摄像头调用指令。
在一些实施例中,近距离观看提醒功能可以是儿童模式应用中的一个功能模块。示例性的,用户对近距离观看提醒功能的打开操作,具体可以是用户打开如图1D中的开关15。在另一些实施例中,近距离观看提醒功能也可以是一个独立的应用,或者还可以是一个小程序。
在近距离观看提醒模块是某一个应用中的一个功能模块的情况下,该应用可以是儿童模式应用。结合上述说明可知,用户在儿童模式中提前将近距离观看提醒功能设置为打开,那么只要用户打开儿童模式,就会自动打开近距离观看提醒模块。因此,在一些实施例中,如果儿童模式的近距离观看提醒功能为默认打开,那么上述S401也可以包括:响应于对儿童模式的打开操作,在近距离观看提醒功能处于开启的情况下,近距离观看提醒模块向摄像头功能模块发送摄像头调用指令。
由上述实施例的说明可知,在一些实施例中,摄像头功能模块包括camera server模块和HAL层的camera HAL模块。在该实施例中,上述S401中近距离观看提醒模块具体可以是向camera server模块发送摄像头调用指令。
需要说明的是,上述S401中对近距离观看提醒功能的打开操作,也可以理解为对近距离观看提醒模块的打开操作、启动操作。
S402.摄像头功能模块响应于摄像头调用指令,启动摄像头。
由上述实施例的说明可知,在一些实施例中,摄像头功能模块包括framework层的camera server模块和HAL层的camera HAL模块。在该实施例中,上述S402具体可以包括:响应于摄像头调用指令,camera server模块通过camera HAL模块,启动摄像头。
在一些实施例中,摄像头功能模块在接收到近距离观看提醒模块发送的摄像头调用指令之后,可以先判断当前摄像头是否处于空闲状态。若确定摄像头处于空闲状态,即表示摄像头是可以被调用的,此时摄像头功能模块可以响应于该摄像头调用指令,启动摄像头。
在另一些实施例中,在接收到近距离观看提醒模块发送的摄像头调用指令之前,摄像头也有可能正在被其他功能模块(如第三功能模块)使用,即接收到近距离观看提醒模块发送的摄像头调用指令时,摄像头处于占用状态。此时,摄像头功能模块可以先通知正在使用摄像头的第三功能模块释放摄像头,然后再响应于近距离观看提醒模块的摄像头调用指令启动摄像头。
其中,如果在接收到近距离观看提醒模块发送的摄像头调用指令时,摄像头功能模块检测到摄像头处于被第三功能模块占用的状态,摄像头功能模块可以先比较第三功能模块与近距离观看提醒模块对于摄像头的使用优先权。如果确定近距离观看提醒模块对于摄像头的使用优先权高于第三功能模块对于摄像头的使用优先权,则摄像头功能模块可以通知第三功能模块释放摄像头。之后,摄像头功能模块再响应于近距离观看提醒模块发送的摄像头调用指令,启动摄像头。
在另一些实施例中,如果近距离观看提醒模块对于摄像头的使用优先权低于第三功能模块对于摄像头的使用优先权,则对于摄像头被分配给第三功能模块的情况下接收到的近距离观看提醒模块的摄像头调用指令,应不予响应。也就是说,在有对于摄像头使用优先权更高的第三功能模块正在使用摄像头的情况下,近距离观看提醒功能无法正常启动。
在本申请实施例提供的技术方案中,在近距离观看提醒模块请求使用摄像头时,摄像头功能模块在当前摄像头处于空闲的状态,或者当前没有其他对摄像头的使用优先权更高的功能模块使用摄像头的情况下,摄像头功能模块可以响应于近距离观看提醒模块发送的摄像头调用指令启动摄像头。这样,可以确保摄像头同时只被一个功能模块使用,避免摄像头的资源抢占的问题。
S403.摄像头功能模块将摄像头分配给近距离观看提醒模块。
摄像头功能模块将摄像头分配给近距离观看提醒模块,也可以称为摄像头功能模块将摄像头的资源分配给近距离观看提醒模块。其中,摄像头的资源可以包括摄像头的硬件资源和/或软件资源。
S404.近距离观看提醒模块控制摄像头,并与摄像头进行图像数据传输。
摄像头功能模块将摄像头分配给近距离观看提醒模块之后,近距离观看提醒模块获得摄像头的控制权和使用权。此时,近距离观看提醒模块可以通过摄像头采集图像,并分析图像中用户的观看距离是否需要提醒。
结合上述对图3的说明可知,近距离观看提醒模块通过摄像头采集图像,具体需要通过摄像头功能模块在摄像头与近距离观看提醒模块之间传输图像。在一些实施例中,上述S404具体可以包括:近距离观看提醒模块控制摄像头采集图像,摄像头向摄像头功能模块发送图像。之后,由于当前摄像头的控制权和使用权属于近距离观看提醒模块,因此,摄像头功能模块向近距离观看提醒模块发送摄像头所采集的图像。
由上述说明可知,在开启近距离观看提醒功能的前提下,近距离观看提醒模块可以通过摄像头功能模块控制摄像头采集图像。在一些实施例中,近距离观看提醒模块获得摄像头功能模块分配的摄像头之后,通过摄像头功能模块向摄像头发送第一控制指令,该第一控制指令可以用于控制摄像头每隔预设时间进行一次图像采集。在另一些实施例中,近距离观看提醒模块也可以每隔预设时间通过摄像头服务模块向摄像头发送第二控制指令,该第二控制指令用于指示摄像头进行一次图像采集。其中,预设时间可以根据实际情况设置为5分钟(min)、1分钟、30秒(s)等等。
进一步的,摄像头完成一次图像采集即可将所采集的图像通过摄像头功能模块发送给近距离观看模块。并且,近距离观看提醒模块获取到图像之后,可以对图像进行分析,确定是否需要对用户的观看距离进行提醒。由上述说明可知,近距离观看提醒模块分析图像可以确定在该图像中用户的眼睛与智慧屏的显示屏之间的距离。用户的眼睛与显示屏之间的距离较近时,则容易出现观看智慧屏损伤用户的视力的问题。因此,在分析图像确定用户的眼睛与显示屏之间的距离较近时,近距离观看提醒模块可以提醒用户注意观看距离。
S405.响应于对家庭相机的打开操作,家庭相机功能模块向摄像头功能模块发送摄像头调用指令。
在一些实施例中,家庭相机功能可以是一个独立的应用。示例性的,用户对近距离观看提醒功能的打开操作,具体可以是用户在图1C所示的界面12中选择家庭相机对应的图标12b,以打开家庭相机应用,进入如图1E所示的家庭相机的界面21。在另一些实施例中,家庭相机功能也可以是某个应用中的一个功能模块,或者还可以是一个小程序等等。
可以理解的,上述S405也可以表示为摄像头功能模块接收家庭相机功能模块发送的摄像头调用指令,该摄像头调用指令是家庭相机功能模块响应于对家庭相机的打开操作发送的。
S406.摄像头功能模块响应于摄像头调用指令,将摄像头分配给家庭相机功能模块。
由于通常摄像头同时只允许被一个功能模块使用,因此,部分电子设备对于不同应用或者不同的功能模块使用摄像头,设置了不一样的使用优先权。当多个应用或者功能模块同时请求使用摄像头时,摄像头功能模块可以结合预先设置各应用或功能模块对摄像头的使用优先权的顺序,决定将摄像头分配给发起请求的应用或功能模块中使用优先权最高的一个应用或功能模块。
在一些实施例中,在S405之后,摄像头功能模块接收到家庭相机功能模块发送的摄像头调用指令,摄像头功能模块可以先对近距离观看提醒模块和家庭相机功能模块对摄像头的使用优先权进行比较。进一步的,上述S406具体可以包括:在确定家庭相机对于摄像头的使用优先权高于近距离观看提醒模块的情况下,响应于摄像头调用指令,将摄像头分配给家庭相机功能模块。由于家庭相机对于摄像头的使用优先权高于近距离观看提醒模块的使用优先权,因此,在接收到家庭相机功能模块的摄像头调用指令时,摄像头功能模块允许家庭相机打开摄像头。
由于在S406之前,智慧屏已经将摄像头分配给了近距离观看提醒模块,因此,在响应于家庭相机功能模块的摄像头调用指令,将摄像头分配给家庭相机功能模块之前,摄像头功能模块需要先将摄像头从近距离观看提醒模块释放。在一些实施例中,摄像头功能模块将摄像头从近距离观看提醒模块释放,具体可以包括:摄像头功能模块向近距离观看提醒模块发送第三控制指令,该第三控制指令用于控制近距离观看提醒模块释放摄像头。之后,近距离观看提醒模块响应于第三控制指令,可以发送摄像头释放指令,以释放摄像头。在其他实施例中,摄像头功能模块将摄像头从近距离观看提醒模块释放,也可以通过其他方式实现,在本申请实施例中不予赘述。
在一些实施例中,为了区分近距离观看提醒模块与家庭相机功能模块发送的摄像头调用指令,可以以“第一”、“第二”等为其命名。示例性的,S406中家庭相机功能模块发送的摄像头调用指令可以命名为第三摄像头调用指令,S401中的摄像头调用指令可以命名为第四摄像头调用指令,等等。
S407.家庭相机功能模块控制摄像头,并与摄像头之间进行图像数据传输。
可以理解的,摄像头功能模块将摄像头分配给家庭相机功能模块之后,家庭相机功能模块获得摄像头的控制权和使用权。此时,家庭相机功能模块可以控制摄像头进行拍摄、录像等操作。
在一些实施例中,上述S407具体可以包括家庭相机功能模块获取摄像头实时拍摄的画面,将该画面显示在智慧屏的显示屏上。示例性的,用户在启动家庭相机之后,智慧屏将会进入图1E所示的界面21,在该界面21中,智慧屏1的显示屏上显示的画面是当前摄像头实时拍摄的画面,其中包括了一个人像。
在另一些实施例中,上述S407还可以包括家庭相机功能模块控制摄像头拍摄图像、录制视频等。示例性的,用户在启动家庭相机之后,智慧屏将会进入图1E所示的界面21,在该界面21中,用户可以通过选择家庭相机提供的功能选项“拍摄”选项24进行图像拍摄,即拍照;或者,用户也可以通过选择家庭相机提供的功能选项“录像”选项25进行视频录制。
进一步的,用户通过家庭相机提供的选项使用家庭相机通过摄像头拍摄图像或者录制视频之后,摄像头所拍摄的图像和视频均可以存储到预设的指定路径。之后,用户可以通过如图1E所示的界面中的“图库”选项查看拍摄的图像和录制的视频。
应理解,在其他实施例中,家庭相机功能模块与摄像头进行图像数据传输,还可以用于其他功能。
S408.响应于对家庭相机的退出操作,家庭相机功能模块向摄像头功能模块发送摄像头释放指令。
示例性的,用户对家庭相机的退出操作,具体可以是用户在如图1E所示的界面21中选择“退出”选项。通常用户选择退出家庭相机,即表示家庭相机将会退出使用摄像头,此时家庭相机功能模块释放摄像头。因此,在S408中,智慧屏在检测到用户对家庭相机的退出操作,家庭相机功能模块向摄像头功能模块发送摄像头释放指令,用于指示家庭相机功能模块释放摄像头。
需要说明的是,上述对近距离观看提醒模块功能和家庭相机的打开操作、退出操作,均可以是由用户来操作。或者,上述打开操作和退出操作也可以是智慧屏基于其他指令(如定时指令,其他功能模块的调用指令等等)自动触发的。
S409.响应于摄像头释放指令,摄像头功能模块将摄像头从家庭相机功能模块释放。
S410.摄像头功能模块向近距离观看提醒模块发送第一通知消息。
在本申请实施例中,由于在打开家庭相机之前,用户开启了近距离观看提醒功能,因此,在家庭相机退出使用摄像头之后,应恢复近距离观看提醒模块使用摄像头继续对用户的观看距离进行提醒。因此,为了使近距离观看提醒模块可以尽快感知到摄像头已被释放的消息,在本申请实施例中,在检测到用户对家庭相机的退出操作之后,由摄像头功能模块主动向近距离观看提醒模块发送第一通知消息。该第一通知消息用于告知近距离观看提醒模块当前摄像头已被释放,重新回到空闲状态,便于近距离观看提醒模块重新调用摄像头,实现近距离观看提醒功能。
可以理解的,S410也可以表示为近距离观看提醒模块接收来自摄像头功能模块的第一通知消息。
在一些实施例中,摄像头功能模块在执行S409释放摄像头之后,可以查询近距离观看提醒功能是否处于开启状态。之后,如果查询到近距离观看提醒功能处于开启状态,那么摄像头功能模块再执行S410,即向近距离观看提醒模块发送第一通知消息。
其中,在一些实施例中,摄像头功能模块可以直接与近距离观看提醒模块交互,获取近距离观看提醒功能是否处于开启状态。示例性的,摄像头功能模块在执行S409释放摄像头的之后,向近距离观看提醒模块发送查询请求,然后接收近距离观看提醒模块返回的响应结果,根据该响应结果确定近距离观看提醒功能是否处于开启状态。
在另一些实施例中,近距离观看提醒功能处于关闭状态,近距离观看提醒模块可能无法接收查询请求,也无法对查询请求进行响应。因此,在该实施例中,摄像头功能模块也可以在执行S409释放摄像头之后,向近距离观看提醒模块发送查询请求,并根据在预设时间段内是否接收到来自近距离观看提醒模块返回的响应消息,来确定近距离观看提醒功能是否处于开启状态。进一步的,如果在预设时间段内接收到近距离观看提醒模块返回的响应消息,则表示近距离观看提醒功能处于开启状态。如果在预设时间段内没有接收到近距离观看提醒模块返回的响应消息,则表示近距离观看提醒模块处于关闭状态。
除了与近距离观看提醒模块交互获取近距离观看提醒功能的状态以外,智慧屏也可以设置一个标识,用于表征近距离观看提醒功能是否开启。示例性的,在智慧屏启动近距离观看提醒功能之后,智慧屏可以将该标识设置为1,用于表征近距离观看提醒功能处于开启状态;在关闭近距离观看提醒功能之后,智慧屏可以将该标识设置为0,用于表征近距离观看提醒功能处于关闭状态。进一步的,在摄像头功能模块执行S409释放摄像头之后,可以通过查询这一标识的数值,来确定近距离观看提醒功能是否处于开启状态。
在本申请实施例提供的技术方案中,摄像头功能模块在释放摄像头之后,如果检测到有近距离观看提醒功能处于开启状态,则摄像头功能模块向近距离观看提醒模块发送第一通知消息。以便通知近距离观看提醒模块摄像头已被释放,可以使近距离观看提醒模块尽快重新调用摄像头,以恢复近距离观看提醒功能。
可以理解的,上述近距离观看提醒模块也可以替换为其他使用摄像头实现对应功能的模块。即,摄像头功能模块在执行S409家庭相机功能模块释放摄像头之后,查询是否存在需要使用摄像头实现的功能处于开启状态,则摄像头功能模块响应于摄像头释放指令,还会向该功能对应的功能模块发送摄像头被释放的第一通知消息。
在一些实施例中,上述S410中摄像头功能模块向近距离观看提醒模块发送第一通知消息,具体可以在摄像头被释放之后,触发向近距离观看提醒模块发送第一通知消息。进一步的,上述触发向近距离观看提醒模块发送第一通知消息,具体可以在摄像头被释放之后,通过调用摄像头释放回调函数来实现。其中,摄像头释放回调函数的注册过程,以及摄像头功能模块在摄像头被释放之后调用摄像头释放回调函数的具体实现过程,可以参照在后实施例的详细说明,在此不予赘述。
S411.近距离观看提醒模块基于第一通知消息,向摄像头功能模块发送摄像头调用指令。
由于第一通知消息表示当前摄像头已被释放,因此,近距离观看提醒模块接收到第一通知消息之后,可以重新调用摄像头,以实现近距离观看提醒功能。在本申请实施例中,近距离观看提醒模块在接收到来自摄像头功能模块的第一通知消息,向摄像头功能模块再次发送摄像头调用指令。在一些实施例中,为了与其他摄像头调用指令区分,S411中近距离观看提醒模块发送的摄像头调用指令可以命名为第二摄像头调用指令。
S412.摄像头功能模块响应于摄像头调用指令,将摄像头分配给近距离观看提醒模块。
由上述实施例的说明可知,在S409中摄像头功能模块响应于家庭相机功能模块的摄像头释放指令释放了摄像头,因此,在S412摄像头功能模块再将摄像头分配给近距离观看提醒模块之前,需先重新启动摄像头,然后再将摄像头分配给近距离观看提醒模块。
S413.近距离观看提醒模块控制摄像头,并与摄像头进行图像数据传输。
至此,近距离观看提醒模块重新获得了摄像头的控制权和使用权。之后,近距离观看提醒模块可以通过摄像头功能模块获取摄像头采集的图像,并对图像进行分析,确定是否需要提醒用户观看距离。
在本申请实施例提供的摄像头的分配方法中,在近距离观看提醒模块使用摄像头进行近距离观看提醒的前提下,如果摄像头被家庭相机等功能模块抢占使用,在家庭相机等功能模块退出使用摄像头时,摄像头功能模块将会向近距离观看提醒模块发送第一通知消息。这样,可以使近距离观看提醒模块及时感知到摄像头被释放。之后,近距离观看提醒模块可以及时的重新调用摄像头,继续对用户的观看距离进行监控并提醒。避免在开启了近距离观看提醒的前提下,使用家庭相机功能模块再退出,无法及时恢复近距离观看提醒的问题。同时也可以避免在家庭相机使用摄像头的期间,近距离观看提醒模块不断轮询尝试打开摄像头导致cpu资源浪费的问题,提升智慧屏的性能。
由上述实施例的说明可知,上述S410具体可以通过调用摄像头释放回调函数来实现。该摄像头释放回调函数是近距离观看提醒模块注册生成的。在一些实施例中,近距离观看提醒模块可以在启动之后立即注册摄像头释放回调函数。请参照图5,在智慧屏检测到用户对近距离观看提醒功能的打开操作之后,上述方法还可以包括S501:
S501.近距离观看提醒模块注册摄像头释放回调函数。
其中,摄像头释放回调函数可以用于在摄像头被释放之后调用该摄像头释放回调函数,用于触发向注册了该摄像头释放回调函数的功能模块,发送摄像头被释放的第一通知消息。
在一些实施例中,近距离观看提醒模块注册摄像头释放回调函数之后,智慧屏可以添加近距离观看提醒模块对摄像头释放回调函数的注册记录。之后,在摄像头被其他功能模块释放之后,摄像头服务模块可以触发调用该摄像头释放回调函数,并基于该注册记录,向注册了该摄像头释放回调函数的功能模块发送通知消息。也就是说,在本申请实施例中,近距离观看提醒模块注册了摄像头释放回调函数之后,如果摄像头被其他功能模块释放,那么摄像头功能模块将会触发调用摄像头释放回调函数。根据注册记录可以确定近距离观看提醒模块注册了摄像头释放回调函数,因此,调用摄像头释放回调函数将会向近距离观看提醒模块发送摄像头被释放的通知消息。
进一步的,在一些实施例中,上述近距离观看提醒模块注册摄像头释放回调函数,具体可以是近距离观看提醒模块在HAL层注册摄像头释放回调函数。
进一步的,如图6所示,上述S501具体可以包括S501a和S501b:
S501a.近距离观看提醒模块向HIDL摄像头接口服务模块发送对摄像头释放回调函数的注册请求。
HIDL摄像头接口服务模块,是硬件抽象层接口定义语言服务中的摄像头接口服务模块(HIDL service camera proxy,以下简称HIDL摄像头接口服务模块)。可以理解的,上述S501a也可以理解为HIDL摄像头接口服务模块接收近距离观看提醒模块发送的对摄像头释放回调函数的注册请求。
S501b.响应于注册请求,HIDL摄像头接口服务模块添加近距离观看提醒模块对摄像头释放回调函数的注册记录。
在近距离观看提醒模块注册摄像头释放回调函数的实施例中,在摄像头功能模块从其他功能模块摄像头释放之后,可以通过调用该摄像头释放回调函数,以实现摄像头功能模块向近距离观看提醒模块发送第一通知消息。
需要说明的是,上述S501可以在S401和S402之后执行,也可以在S401和S402之前执行,或者S401、S402可以与S501可以同步执行。在本申请实施例中,对于S401、S402以及S501执行的先后顺序不予显限定。
结合本申请实施例中上述S501可知,近距离观看提醒模块启动之后,注册了摄像头释放回调函数。因此,在S409从家庭相机功能模块释放摄像头之后,摄像头功能模块可以通过调用该摄像头释放回调函数,基于注册记录以向近距离观看提醒模块发送第一通知消息。请继续参照图5,上述S410具体可以包括S410a:
S410a.摄像头功能模块触发调用摄像头释放回调函数,基于注册记录以向近距离观看提醒模块发送第一通知消息。
在近距离观看提醒模块在HIDL摄像头接口服务模块中注册摄像头释放回调函数的实施例中,请继续参照图6,上述S410a具体可以包括S601和S602:
S601.摄像头功能模块向HIDL摄像头接口服务模块发送第二通知消息。
其中,第二通知消息用于通知HIDL摄像头接口服务模块摄像头被释放的消息。因此,HIDL摄像头接口服务模块接收到第二通知消息之后,可以调用摄像头释放回调函数,基于注册记录以向近距离观看提醒模块发送第一通知消息。
在一些实施例中,上述S410a具体可以是摄像头功能模块中的camera HAL模块向HIDL摄像头接口服务模块发送第二通知消息。
S602.HIDL摄像头接口服务模块响应于第二通知消息,调用摄像头释放回调函数,基于注册记录向近距离观看提醒模块发送第一通知消息。
由上述实施例的说明可知,第二通知消息用于通知HIDL摄像头接口服务模块摄像头被释放的消息,因此,HIDL摄像头接口服务模块接收到第二通知消息之后,可以调用摄像头释放回调函数,触发向近距离观看提醒模块发送第一通知消息。
在一些实施例中,对于摄像头功能模块而言,在摄像头被释放之前,可能并不清楚是否有功能模块注册了摄像头释放回调函数,或者哪些功能模块注册了摄像头释放回调函数。因此,在摄像头功能模块向HIDL摄像头接口服务模块发送第二通知消息之前,摄像头功能模块先可以在注册记录中查询哪些功能模块注册了摄像头释放回调函数。之后,摄像头功能模块在摄像头被释放之后,可以向这部分注册了摄像头释放回调函数的功能模块发送第一通知消息。在本申请实施例中,近距离观看提醒模块在启动之后注册了摄像头释放回调函数,因此,在该实施例中,摄像头功能模块可以向HIDL摄像头接口服务模块发送第二通知消息,以使HIDL摄像头接口服务模块向近距离观看提醒模块发送第一通知消息。
具体的,在一些实施例中,在将摄像头从家庭相机功能模块释放之后,摄像头功能模块可以在HIDL摄像头接口服务模块查询哪些功能模块注册了摄像头释放回调函数。
在本申请实施例中,近距离观看提醒模块启动之后,注册了摄像头释放回调函数。而摄像头功能模块在摄像头被释放之后,即可调用摄像头释放回调函数。调用摄像头释放回调函数之后,即可触发向近距离观看提醒模块发送第一通知消息,以使近距离观看提醒模块及时感知到摄像头被释放的消息,便于近距离观看提醒模块及时的重新调用摄像头,以恢复近距离观看提醒功能。
结合上述实施例的说明可知,如果近距离观看提醒功能启动的时候,摄像头处于空闲状态,那么摄像头将会被分配给近距离观看提醒模块,即图4C所示的S403和S404。而在此之后,家庭相机启动,将会抢占摄像头的控制权和使用权,导致近距离观看提醒模块暂时中断。因此,在一些实施例中,近距离观看提醒模块可以在摄像头被抢占的时候,再注册摄像头释放回调函数,这样也可以保证家庭相机功能模块退出使用摄像头时,能够调用摄像头释放回调函数通知近距离观看提醒模块摄像头被释放的消息。从而保证近距离观看提醒模块可以及时的重新调用摄像头,恢复近距离观看提醒功能。
由上述实施例的说明可知,近距离观看提醒模块被家庭相机功能模块抢占摄像头的控制权和使用权的过程,具体可以包括从近距离观看提醒模块释放摄像头,再由摄像头功能模块将摄像头分配给家庭相机功能模块。如图7所示,S406具体可以包括S406a-S406c:
S406a.摄像头功能模块响应于摄像头调用指令,向近距离观看提醒模块发送第三控制指令。
S406b.响应于第三控制指令,近距离观看提醒模块释放摄像头。
同时,在近距离观看功能模块摄像头释放摄像头之后,近距离观看提醒模块即可注册摄像头释放回调函数,如图7所示的S701:
S701.近距离观看提醒模块注册摄像头释放回调函数。
需要说明的是,上述S701可以在S406b之前执行,也可以在S406b之后执行,或者,S701与S406b还可以同时执行。在本申请实施例中,对于S701和S406b的执行先后顺序不予限定。
S406c.摄像头功能模块将摄像头分配给家庭相机功能模块。
可以理解的,在图7所示的实施例中,摄像头功能模块在家庭相机退出使用摄像头时,可以通过触发调用摄像头释放回调函数的方式,向近距离观看提醒模块发送第一通知消息。
在本申请实施例提供的技术方案中,近距离观看提醒模块在启动时,如果摄像头处于空闲状态,可以立即获得摄像头的控制权和使用权。而之后,摄像头被分配给其他功能模块如家庭相机,近距离观看提醒模块的摄像头才被抢占,近距离观看提醒功能将会暂时中断。此时,近距离观看提醒模块在释放摄像头时,可以注册摄像头释放回调函数,以使摄像头功能模块在其他功能模块退出使用摄像头之后,可以调用该摄像头释放回调函数,以通知近距离观看提醒模块摄像头被释放的消息。从而也可以保证近距离观看提醒模块及时的重新调用摄像头,以及时的恢复近距离观看提醒功能。
另外,在摄像头功能模块通过触发调用摄像头释放回调函数向近距离观看提醒模块发送第一通知消息的实施例中,如果近距离观看提醒功能启动之前,摄像头已经被分配给其他功能模块(如第三功能模块等),并且近距离观看提醒模块对于摄像头的使用优先权低于第三功能模块对于摄像头的使用优先权。响应于近距离观看提醒功能的打开操作,可以先启动近距离观看提醒功能,但由于摄像头被其他功能模块占用,此时近距离观看提醒功能无法正常的实现。
为了在第三功能模块退出使用摄像头时,近距离观看提醒模块可以及时的调用摄像头,来实现近距离观看提醒功能,虽然无法使用摄像头,但是近距离观看提醒模块可以先注册摄像头释放回调函数。这样,在第三功能模块退出使用摄像头时,摄像头功能模块也可以及时触发调用摄像头释放回调函数,基于注册记录以向近距离观看提醒模块发送第一通知消息。近距离观看提醒模块在接收到第一通知消息之后,可以及时的调用摄像头,以实现近距离观看提醒功能。
在一些实施例中,第三功能模块可以是视频通话等相关的功能模块。可以理解的,第三功能模块也可以替换为上述家庭相机功能模块。
在一些实施例中,如图8所示,为本申请实施例提供的智慧屏的软件架构示意图,其中示出了与本申请实施例提出的摄像头的分配方法相关的功能模块,以及各个功能模块之间的数据流转情况。
在图8所示的实施例中,上述摄像头功能模块具体可以划分为:位于应用程序框架层的摄像头服务模块,以及位于硬件抽象层的摄像头硬件抽象模块。
结合图8所示的功能模块,以下对本申请实施例提供的摄像头的分配方法的完整流程进行说明,请参照图9。在该实施例中,近距离观看提醒模块作为儿童模式应用(APK)的一个功能,家庭相机功能为家庭相机应用。
首先,用户打开智慧屏的儿童模式。之后,儿童模式判断是否打开了近距离观看提醒功能。在检测到儿童模式打开了近距离观看提醒功能之后,儿童模式在HIDL servicecamera proxy中注册摄像头释放回调函数。并且,儿童模式通过camera server模块启动摄像头(camera HAL)。之后,儿童模式通过camera HAL获取图像数据,分析图像数据可以监控用户的观看距离,并在检测到观看距离过近时提醒用户。
然后,用户打开智慧屏的家庭相机。家庭相机启动之后,将会抢占摄像头的控制权和使用权。此时,儿童模式的近距离观看提醒功能将会暂时中断。
之后,用户再关闭家庭相机。家庭相机关闭的过程中,家庭相机会通过cameraserver控制释放摄像头。在摄像头被释放之后,camera Half从HIDL service cameraproxy调用摄像头释放回调函数,触发向儿童模式发送第一通知消息,以通知儿童模式摄像头已被释放。
儿童模式在接收到第一通知消息之后,可以重新通过camera server模块重读调用摄像头,并获取摄像头采集的图像进行分析。之后,根据图像分析的结果可以继续对用户的观看距离进行监控并提醒。
图10为本申请实施例提供的摄像头的分配方法的流程示意图。在该实施例中,用户首先打开儿童模式,儿童模式将会获取保存的记录中是否打开了近距离观看提醒功能。如果没有打开近距离观看提醒模块,用户可以在儿童模式的功能设置界面手动打开近距离观看提醒功能。在检测到近距离观看提醒功能打开之后,近距离观看提醒模块可以在HIDLservice camera proxy中注册摄像头释放回调函数。
之后,可以判断摄像头释放可用。如果打开儿童模式(或者打开近距离观看提醒功能)时摄像头可用,那么可以直接将摄像头分配给近距离观看提醒模块。之后,近距离观看提醒模块可以获取摄像头采集的图像,分析图像确定用户的观看距离。并且,在分析图像确定用户的观看距离过近时提醒用户。
如果打开儿童模式(或者打开近距离观看提醒功能)时摄像头不可用,那么则需等待HIDL service camera proxy调用摄像头释放回调函数发送的摄像头被释放的通知消息。在判断接收到摄像头被释放的通知消息之后,近距离观看提醒模块可以调用摄像头,智慧屏也可以将摄像头分配给近距离观看提醒模块。之后,近距离观看提醒模块即可获取摄像头采集的图像进行分析,并基于图像分析的结果对用户的观看距离进行监控和提醒。
其中,camera HAL在检测到摄像头被释放之后,将会向HIDL service cameraproxy发送通知消息。而HIDL service camera proxy在接收到该通知消息之后,将会调用摄像头释放回调函数,向注册了摄像头释放回调函数的近距离观看提醒模块发送摄像头被释放的通知消息。
进一步的,在近距离观看提醒模块获取摄像头采集的图像,并基于图像分析的结果对用户的观看距离近监控并提醒的过程中,摄像头的使用权可能会被其他功能模块抢占。由于在打开近距离观看提醒功能时,近距离观看提醒模块注册了摄像头释放回调函数。因此,在检测到摄像头被抢占之后,近距离观看提醒模块可以检测是否接收到HIDLservice camera proxy发送的摄像头被释放的通知消息。并在接收到摄像头被释放的通知消息之后,重新调用摄像头,以获取摄像头采集的图像并恢复近距离观看提醒功能。
本申请另一些实施例提供了一种计算机设备,该计算机设备可以是上述电子设备(如智慧屏1)。该计算机设备可以包括:存储器和一个或多个处理器。该存储器与处理器耦合。该存储器还用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备可执行上述方法实施例中智慧屏1执行的各个功能或者步骤。该计算机设备是电子设备时,其结构可以参考图2A所示的电子设备100的结构。
本申请实施例还提供一种芯片***,如图11所示,该芯片***1100包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如计算机设备的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当指令被处理器1101执行时,可使得计算机设备执行上述实施例中的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述电子设备(如智慧屏1)上运行时,使得该电子设备执行上述方法实施例中智慧屏1执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中智慧屏1执行的各个功能或者步骤。其中,该计算机可以是电子设备,如智慧屏1。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种摄像头的分配方法,其特征在于,所述方法应用于电子设备,所述电子设备包括摄像头,以及支持使用所述摄像头实现对应功能的第一功能模块和第二功能模块;所述第一功能模块对应的第一功能处于开启的状态,且当前所述摄像头被分配给所述第二功能模块;所述方法包括:
获取针对所述第二功能模块的第一操作;
响应于所述第一操作,将所述摄像头从所述第二功能模块释放,并将所述摄像头分配给所述第一功能模块。
2.根据权利要求1所述的方法,其特征在于,所述电子设备还包括摄像头功能模块,所述响应于所述第一操作,将所述摄像头从所述第二功能模块释放,并将所述摄像头分配给所述第一功能模块,包括:
所述摄像头功能模块响应于所述第一操作,将所述摄像头从所述第二功能模块释放,并触发向所述第一功能模块发送摄像头被释放的通知消息;
所述第一功能模块基于所述通知消息向所述摄像头功能模块发送第一摄像头调用指令;
响应于所述第一摄像头调用指令,所述摄像头功能模块将所述摄像头分配给所述第一功能模块。
3.根据权利要求1或2所述的方法,其特征在于,在所述获取针对所述第二功能模块的第一操作之前,所述方法还包括:
获取针对所述第二功能模块的第二操作;
响应于所述第二操作,将所述摄像头分配给所述第二功能模块。
4.根据权利要求3所述的方法,其特征在于,在所述获取针对所述第二功能模块的第二操作之前,所述方法还包括:
获取针对所述第一功能模块的第三操作;
响应于所述第三操作,启动所述第一功能,并将所述摄像头分配给所述第一功能模块;
其中,所述响应于所述第二操作,将所述摄像头分配给所述第二功能模块,包括:
响应于所述第二操作,将所述摄像头从所述第一功能模块释放,并将所述摄像头分配给所述第二功能模块。
5.根据权利要求4所述的方法,其特征在于,所述电子设备还包括摄像头功能模块,在所述获取针对所述第一功能模块的第三操作之后,所述方法还包括:
所述第一功能模块发起注册摄像头释放回调函数的第一注册请求;
响应于所述第一注册请求,添加所述第一功能模块对所述摄像头释放回调函数的注册记录;所述注册记录用于所述摄像头功能模块在将所述摄像头从所述第二功能模块释放之后,触发调用所述摄像头释放回调函数,基于所述注册记录以向所述第一功能模块发送摄像头被释放的通知消息。
6.根据权利要求4所述的方法,其特征在于,所述电子设备还包括摄像头功能模块,在所述响应于所述第二操作,将所述摄像头从所述第一功能模块释放之后,所述方法还包括:
所述第一功能模块发起注册摄像头释放回调函数的第二注册请求;
响应于所述第二注册请求,添加所述第一功能模块对所述摄像头释放回调函数的注册记录;所述注册记录用于所述摄像头功能模块在将所述摄像头从所述第二功能模块释放之后,触发调用所述摄像头释放回调函数,基于所述注册记录以向所述第一功能模块发送摄像头被释放的通知消息。
7.根据权利要求3所述的方法,其特征在于,所述电子设备还包括摄像头功能模块,在所述响应于所述第二操作,将所述摄像头分配给所述第二功能模块之后,所述方法还包括:
获取针对所述第一功能模块的第四操作;
响应于所述第四操作,启动所述第一功能;
所述第一功能模块发起注册摄像头释放回调函数的第三注册请求;
响应于所述第三注册请求,添加所述第一功能模块对所述摄像头释放回调函数的注册记录;所述注册记录用于所述摄像头功能模块在将所述摄像头从所述第二功能模块释放之后,触发调用所述摄像头释放回调函数,基于所述注册记录以向所述第一功能模块发送摄像头被释放的通知消息。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述第一功能模块包括近距离观看提醒模块;在所述将所述摄像头分配给所述第一功能模块之后,所述方法还包括:
所述近距离观看提醒模块获取所述摄像头采集的图像;
所述近距离观看提醒模块分析所述图像,根据分析所述图像得到的结果,对用户的观看距离进行提醒。
9.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和摄像头;所述存储器、所述摄像头分别与所述处理器耦合;
所述摄像头用于采集图像;所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
CN202310492723.7A 2023-05-04 2023-05-04 一种摄像头的分配方法及电子设备 Pending CN117729425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310492723.7A CN117729425A (zh) 2023-05-04 2023-05-04 一种摄像头的分配方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310492723.7A CN117729425A (zh) 2023-05-04 2023-05-04 一种摄像头的分配方法及电子设备

Publications (1)

Publication Number Publication Date
CN117729425A true CN117729425A (zh) 2024-03-19

Family

ID=90200333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310492723.7A Pending CN117729425A (zh) 2023-05-04 2023-05-04 一种摄像头的分配方法及电子设备

Country Status (1)

Country Link
CN (1) CN117729425A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106117A (zh) * 2012-12-25 2013-05-15 青岛海信电器股份有限公司 一种资源分配方法及电子设备
CN103793246A (zh) * 2014-01-22 2014-05-14 深圳Tcl新技术有限公司 协调摄像头资源的方法及***
CN105068945A (zh) * 2015-08-03 2015-11-18 Tcl集团股份有限公司 一种Android***的摄像头分配方法及***
WO2022170856A1 (zh) * 2021-02-09 2022-08-18 华为技术有限公司 建立连接的方法与电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106117A (zh) * 2012-12-25 2013-05-15 青岛海信电器股份有限公司 一种资源分配方法及电子设备
CN103793246A (zh) * 2014-01-22 2014-05-14 深圳Tcl新技术有限公司 协调摄像头资源的方法及***
CN105068945A (zh) * 2015-08-03 2015-11-18 Tcl集团股份有限公司 一种Android***的摄像头分配方法及***
WO2022170856A1 (zh) * 2021-02-09 2022-08-18 华为技术有限公司 建立连接的方法与电子设备

Similar Documents

Publication Publication Date Title
JP7463647B2 (ja) 通知処理システム、方法および電子デバイス
CN114397979B (zh) 一种应用显示方法及电子设备
WO2020177622A1 (zh) Ui组件显示的方法及电子设备
US20230216990A1 (en) Device Interaction Method and Electronic Device
WO2022143883A1 (zh) 一种拍摄方法、***及电子设备
WO2022127632A1 (zh) 一种资源管控方法及设备
CN113747374B (zh) 一种消息推送方法及装置
US20240094972A1 (en) Page Display Method and Apparatus, Electronic Device, and Readable Storage Medium
CN113703849B (zh) 投屏应用打开方法和装置
EP4152756A1 (en) Device recommendation method and electronic device
CN117729425A (zh) 一种摄像头的分配方法及电子设备
CN116708647B (zh) 通知消息回复方法及电子设备
CN117857646B (zh) 数据网络共享方法、电子设备及存储介质
WO2023040848A9 (zh) 设备控制方法和装置
WO2023016347A1 (zh) 声纹认证应答方法、***及电子设备
WO2022089259A1 (zh) 设备通信方法、***和装置
WO2023142935A1 (zh) 应用组件管理方法及相关设备
CN116264600A (zh) 来电提醒方法、电子设备和计算机可读存储介质
CN116541188A (zh) 通知显示方法、终端设备及存储介质
CN116095230A (zh) 应用程序推荐方法和相关装置
CN116668997A (zh) 定位方法、用户界面及电子设备
CN115268999A (zh) 用于控制健康设备的终端及健康设备控制方法
CN117714760A (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