CN114727010B - 一种摄像头的控制方法、设备和存储介质 - Google Patents
一种摄像头的控制方法、设备和存储介质 Download PDFInfo
- Publication number
- CN114727010B CN114727010B CN202210193594.7A CN202210193594A CN114727010B CN 114727010 B CN114727010 B CN 114727010B CN 202210193594 A CN202210193594 A CN 202210193594A CN 114727010 B CN114727010 B CN 114727010B
- Authority
- CN
- China
- Prior art keywords
- camera
- actuator
- vibrator
- vibration
- lens carrier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 51
- 238000010586 diagram Methods 0.000 description 16
- 230000002265 prevention Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000001276 controlling effect Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005381 potential energy Methods 0.000 description 2
- PBMFSQRYOILNGV-UHFFFAOYSA-N pyridazine Chemical compound C1=CC=NN=C1 PBMFSQRYOILNGV-UHFFFAOYSA-N 0.000 description 2
- 230000036632 reaction speed Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72454—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本申请实施例提供了一种摄像头的控制方法、设备和存储介质,该方法应用于具有振动器和摄像头致动器的电子设备,该方法包括:当摄像头未被使用,且振动器未在振动时,透镜载体在第一位置;当振动器以第一时长进行振动时,透镜载体在第一位置;当振动器以第二时长进行振动时,摄像头致动器控制透镜载体移动到第二位置;其中,第二时长大于第一时长。由此降低了手机振动器振动时摄像头致动器的载体碰撞外壳产生的异响,提高了用户体验。
Description
技术领域
本申请涉及计算机技术领域,具体地涉及一种摄像头的控制方法、设备和存储介质。
背景技术
随着技术的发展,拍照功能已经日益成为手机等电子设备的一项不可或缺的基本功能。为了提高用户日益高涨的拍照,一台手机往往内置多个摄像头。此外,手机、平板电脑等电子设备还通常内置有转子马达、线性马达、压电陶瓷振动马达等微型振动器,用于为手机的来电振动提示、游戏机的振动反馈等提供触觉反馈。当振动器振动时,时常会引起摄像头的共振,产生“哒哒”或者“滋滋”的异响,降低了用户体验。
发明内容
有鉴于此,本申请实施例提供一种摄像头的控制方法、设备和存储介质,以利于解决现有技术中振动器振动时摄像头因共振而发出异响的问题。
根据本申请实施例的第一个方面,提供了一种摄像头的控制方法,应用于电子设备,前述电子设备具有振动器和摄像头,前述摄像头具有摄像头致动器,前述摄像头致动器具有透镜载体,可选地,前述方法包括:当前述摄像头未被使用,且前述振动器未在振动时,透镜载体在第一位置;当前述振动器以第一时长进行振动时,前述透镜载体在前述第一位置;当前述振动器以第二时长进行振动时,前述摄像头致动器控制前述透镜载体移动到第二位置;其中,前述第二时长大于前述第一时长。
可选地,前述方法还包括:当在第三时长内,前述振动器以前述第一时长振动的次数或累计时长小于第一阈值时,前述透镜载体在第一位置;当在前述第三时长内,前述振动器以前述第一时长振动的次数或累计时长大于前述第一阈值时,前述摄像头致动器控制前述透镜载体移动到前述第二位置。
可选地,前述方法还包括:获取控制前述振动器的指令的振动时长;若前述振动时长小于第二阈值,则前述透镜载体在前述第一位置;若前述振动时长大于第二阈值,则前述摄像头致动器控制前述透镜载体移动到前述第二位置,其中,前述第一位置不同于前述第二位置。前述第二位置为一个或多个,根据振动时长,控制前述透镜载体移动到对应的第二位置。
可选地,前述方法还包括:检测前述摄像头是否被使用;若前述摄像头被使用,则不振动前述振动器。
可选地,前述摄像头致动器在接收到来自摄像头服务的第一指令后,移动前述透镜载体到前述第二位置。
可选地,前述第一指令是从前述摄像头服务经由CameraProvider发送到前述摄像头致动器的。
可选地,前述摄像头致动器在接收到来自CameraProvider的第二指令后,移动前述透镜载体到前述第二位置。
可选地,前述电子设备还存储有第一摄像头致动器驱动程序和第二摄像头致动器驱动程序。其中,第一摄像头致动器驱动程序,用于当摄像头在被使用时驱动前述摄像头致动器;第二摄像头致动器驱动程序,用于当摄像头在未被使用时驱动前述摄像头致动器。当前述振动器以第二时长进行振动时,前述摄像头致动器经由前述第二摄像头致动器驱动程序,控制前述透镜载体移动到前述第二位置。
可选地,前述检测前述摄像头是否在被使用的步骤包括:通过查询前述摄像头服务,检测前述摄像头是否在被使用。
可选地,前述方法还包括:当前述振动器停止振动时,在将前述摄像头致动器下电之前,控制前述透镜载体到前述第一位置。。
根据本申请实施例的第二个方面,提供了一种电子设备,包括用于存储计算机程序指令的存储器、用于执行程序指令的处理器、振动器和摄像头,其中,前述摄像头具有摄像头致动器,摄像头致动器具有透镜载体,当该计算机程序指令被前述处理器执行时,触发前述电子设备执行本发明第一个方面的方法。
根据本发明的第三个方面,提供了一种计算机可读存储介质,前述计算机可读存储介质包括存储的程序,其中,在前述程序运行时控制前述计算机可读存储介质所在设备执行本发明第一个方面的方法。
根据本申请实施例的第四个方面,提供了一种计算机程序产品,前述计算机程序产品包含可执行指令,当前述可执行指令在计算机上执行时,使得计算机执行本发明第一个方面的方法。
采用本申请实施例提供的技术方案,产生以下有益效果:在振动器振动时,将摄像头致动器推动到预设位置,从而防止或降低了手机振动器振动时,摄像头致动器的载体碰撞外壳产生的异响,提高了用户体验。预设位置位于下电位置和底座或顶盖之间的位置,不仅防止摄像头致动器的载体碰撞外壳的侧壁产生的异响,也防止了载体被过度推动碰撞底座和顶盖产生的异响。通过记录和读取致动器的工作状态,预防了防异响功能与相机功能在控制致动器时的冲突。不启动CameraService(摄像头服务),经由硬件抽象层或者内核层控制摄像头驱动器的载体,加快了防异响的反应速度,解决了利用原有Camera服务通路速度过慢,无法彻底防止异响的问题。通过检测振动器振动指令的振动时长,解决了按键振动反馈等不产生异响的短时振动或小幅度振动,仍被触发防异响功能的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种电子设备示意图;
图2为本申请实施例提供的X轴线性振动马达的示意图;
图3A为本申请实施例提供的摄像头模组下电状态的音圈马达的示意图;
图3B为本申请实施例提供的摄像头模组微距状态的音圈马达的示意图;
图4为本申请实施例提供的一种电子设备的来电振动示意图;
图5为本申请实施例提供的摄像头的控制方法的软件结构框图;
图6为本申请实施例提供的摄像头的控制方法的流程图;
图7为本申请实施例提供的冲突管理的流程图;
图8为本申请实施例提供的冲突管理的状态转换图;
图9为本申请实施例提供的又一冲突管理的流程图;
图10为本申请实施例提供的摄像头的控制方法的软件结构框图;
图11为本申请实施例提供的摄像头的控制方法的流程图;
图12为本申请实施例提供的摄像头的控制方法的软件结构框图;
图13为本申请实施例提供的摄像头的控制方法的流程图;
图14为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请一个或多个实施例提供的一种电子设备示意图。在图1中以手机100为例对电子设备进行示例性说明,图1中示出了手机100的前视图和后视图。为了提供拍摄功能,手机100上通常配置一个或多个摄像头。例如,在本申请实施例的手机100的前侧配置有两个前置的摄像头101、102,在手机100的后侧面配置有四个后置的摄像头103、104、105、106。示例性的,前置的摄像头101和102分别为3D深感摄像头和广角摄像头,后置的摄像头103、104、105和106分别为超广角摄像头、潜望式长焦摄像头、黑白摄像头和广角摄像头。
可理解,图1所示仅为一种示例性说明,并不应当将其作为本申请保护范围的限制。例如,不同的手机,其摄像头的配置数量和配置位置可能不同。另外,本申请实施例涉及的电子设备除了手机以外,还可以为平板电脑、个人计算机(personal computer,PC)、个人数字助理 (personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智能汽车、智能音响、机器人、智能眼镜、智能电视等其他配备有摄像头的电子设备。需要指出的是,在一些可能的实现方式中,电子设备也可能称为终端设备、用户设备(UserEquipment,UE) 等,本申请实施例对此不作限制。
为了提高用户的交互体验,手机、平板电脑等电子设备通常还内置有转子马达、线性马达、压电陶瓷振动马达等微型振动器,为手机的来电振动提示、游戏机的振动反馈等功能提供触觉反馈。作为微型振动器的一例,图2示例性的标出了内置于手机100的线性振动器(Linear Resonant Actuator,LRA)200的结构示意图。振动器200的主要包括壳体201、振子202和弹簧203。壳体201的内部具有腔体,多个弹簧203分别与振子202和壳体201腔体的内壁相连,从而将振子202悬吊在壳体201的腔体内部。振子202的外侧设有励磁线圈。当励磁线圈中有电流流过时,在励磁线圈内就会产生磁场。随着流过励磁线圈的电流发生变化,该磁场的方向和强弱也会改变,振子202在变化的磁场中左右往复移动,进而引起手机100整体的振动。这种振动作为触觉效果被用户所感知。通过改变振动器200的驱动电压、频率、驱动时间和驱动方向等,可以为用户带来丰富多彩的触觉效果。
此外,电子设备的摄像头通常设有致动器,摄像头通过致动器推动透镜的往复移动来完成对焦。致动器可以是中置电机、底置电机、闭环电机、或者超声波电机等。图3A和图3B以中置式的音圈电机(Voice Coil Motor,VCM)为例,简要介绍电机的摄像头模组的致动器的基本结构。致动器300包括外壳(Yoke)301、载体(Carrier)310、磁铁(Magnet)302、底座(Base)303、上弹片(Forward Spring)304a、下弹片(Backward Spring)304b和驱动 IC(图中未示出)。致动器300在底座303的对侧处还设有用于保护载体310的顶盖(图中未示出)。载体310也被称为透镜载体,在载体310的内部固定有透镜(Lens)311,载体310 的外围被线圈(Coil)312沿圆周方向层层包绕。多个上、下弹片304a和304b的内侧与载体 310连接、外侧与外壳301和底座303连接,使载体310在径向上被固定。当驱动IC收到推动致动器300的载体310的指令时,向线圈312提供电流,通过线圈312流过电流产生的电磁力,推动载体310和透镜311在顶盖和底座303之间沿透镜311的光轴的方向一体地往复移动,从而实现摄像头模组的对焦。图3A中所示的致动器300处于下电(Power Down)状态,此时手机电源未向线圈312提供电流,载体310被上弹片304a和下弹片304b悬浮地夹持在由多个磁铁302形成的磁场内,无需其他外力即可维持的当前位置。参见图3A,在本申请的实施例中将致动器处于下电状态时载体停留的位置称为“下电位置”或者“默认位置”。中置式电机的下电位置位于整个电机的移动行程的中间,可降低对焦的移动范围,提高拍照时的对焦速度。
参见图3B,当线圈312内有电流流过时,载体310在电磁力的推动下带动透镜311一起移动位置,从下电位置移动到了微距位置。在这个过程中,上、下弹片304a收到载体310的挤压发生弹性形变,并积蓄了弹性势能。当线圈312内不再有电流流过或者电流较弱时,上、下弹片304a在弹性势能的作用下将载体310推回到“下电位置”。其中,前述微距位置指的是当摄像头被用于拍摄微距照片时,载体和透镜相对于下电位置所处的位置。
当手机的振动器振动时,假如振动器振动频率与摄像头致动器的谐振频率接近,会导致摄像头致动器中的载体发生共振,撞击外壳的侧壁,产生“哒哒”或者“滋滋”的异响,降低了用户体验。而为了避免这种异响的发生而更换其他的振动器或摄像头,还会限制了振动器和摄像头的元器件选型的范围。
图4示例性的标出了处于静音模式(Silent Mode)下的手机在接到来电时振动提示的示意图。基于现有技术的手机在图4的场景下,摄像头会产生异响。
有鉴于以上问题,本申请一实施例公开了一种摄像头的控制方法。
图5为执行本申请实施例的手机的软件结构框图,本实施例既可以用于图1所示的手机100,也可以用于平板电脑、智能手表等其他电子设备。以下参见图5,以安卓(Android)系统为例简要介绍电子设备操作系统的分层架构。安卓系统从上至下分为以下5个层:应用层 (Application Layer)、框架层(Framework Layer,FWK)、硬件抽象层(HardwareAbstraction Layer,HAL)、内核层(Kernel Layer)和硬件层(Hardware Layer),层与层之间通过软件接口通信。
其中,应用层负责直接与用户交互,安卓系统(以下简称“系统”)内置的应用程序(例如通话、闹钟等)以及用户自行安装非系统级的应用程序(例如游戏、办公软件、社交应用等) 都属于应用层。框架层为应用层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架,包括一些预先定义的函数。其中,VibratorService是安卓系统的框架层中负责管理和驱动振动器的服务,CameraService是安卓系统的框架层中负责管理和驱动摄像头的服务。硬件抽象层是对内核驱动程序的抽象和封装,屏蔽低层的实现细节,为不同硬件设备提供统一的访问接口。内核层提供了振动器、摄像头、显示屏等硬件相关的驱动程序,以实现系统与硬件间的通信。其中,VibratorManager是手机振动器在硬件抽象层的管理服务,为上层提供统一的硬件访问接口,第一摄像头致动器驱动程序(First Camera Actuator Driver)主要用于驱动摄像头致动器执行对焦等与拍摄相关的操作,第二摄像头致动器驱动程序主要用于执行推动摄像头致动器到预设位置等与防止摄像头在手机振动时发出异响相关的操作。在一些实施例中,预设位置也可以用预设距离的代替,即预设距离是指预先存储的载体从下电位置起移动的距离。在本实施例中,第一摄像头致动器驱动程序采用了美国高通公司提供的Qcom cameraactuator driver,第二摄像头致动器驱动程序采用了发明人自行编写的驱动程序。在其他实施例中,第一摄像头致动器驱动程序和第二摄像头致动器驱动程序也可合并为一个摄像头致动器驱动程序,也可以为每个物理摄像头致动器分别提供一个第二摄像头致动器驱动程序。硬件层是位于操作系统最底层的硬件,由物理电路构成,操作系统通过I2C、CCI 等通信线路向振动器的驱动IC和摄像头致动器的驱动IC的寄存器内写入指令的方式,控制振动器和摄像头致动器的运行。
参见图6,本实施例的方法主要包括以下步骤。
步骤S601:通话应用调用框架层的VibratorService。
当手机100接到来电时,应用层的通话应用收到操作系统发出的来电消息,调用框架层的VibratorService服务,以命令振动器通过振动来通知用户接听来电。在另外一些实施例中,通话应用发送来电的通知给系统,例如,发送给系统框架层的VibartorService,由VibratorService判断控制是否通过振动振动器的方式通知用户来电。
步骤S602:VibratorService向CameraService发出查询指令,确认摄像头是否处于开启状态。
VibratorService是安卓系统的框架层中负责管理和驱动振动器的服务。CameraService 是安卓系统的框架层中负责管理和驱动摄像头的服务。VibratorService通过软件接口向 CameraService发出查询摄像头是否在开启的查询指令。
以摄像头106为例,当用户正使用手机的摄像头106拍照或者录像应用时,若VibratorService向CameraService发出查询指令,则CameraService查询到摄像头106正在被占用,向VibratorService反馈摄像头106的设备ID和工作状态,该工作的状态为开启,并跳转到步骤603。而当用户未使用手机的后置摄像头106时,若VibratorService向CameraService发出查询指令,则CameraService查询到摄像头106未被占用,向VibratorService反馈后置摄像头106的状态为关闭,并继续执行到步骤604。
步骤S603:若摄像头106已开启,VibratorService提示通话应用。
当用户正使用拍摄功能时,因后述防异响操作导致的透镜位置移动会干扰正常拍摄功能,可以预先确认摄像头是否已开启后,再决定是否执行防异响操作,从而避免干扰用户的正常拍摄。VibratorService查询到摄像头106在被使用,不执行防异响操作。在一些实施例中, VibratorManager指示振动器振动,提示用户有来电。在另一些实施例中,VibratorManager向通话应用(或者计时器等低优先级的应用)等发送该摄像头106正忙的提示,通话应用可以选择性地在屏幕显示提示提示框等其他方式提示用户,从而避免因振动器的振动干扰拍摄。
步骤S604:若摄像头106未开启,VibratorService向硬件抽象层的VibratorManager发送手机振动器振动的指令。
当用户没有使用拍摄功能时,检测到摄像头106未在被使用,VibratorService向Vibrator Manager发送手机振动器振动的指令。
VibratorService提供以下4个接口给上层应用程序调用:hasVibrator()用于判断是当前电子设备否有支持振动器;vibrate()用于以毫秒为单位指示振动器振动和停止振动; vibratePattern()用于指示振动的类型为单次振动还是重复振动;cancelVibrate()用于中止当前的振动。
示例性的,VibratorService可以通过以下代码向VibratorManager下发手机振动器振动的指令。
vibrator=(Vibrator)getSyetemService(Service,VIBATOR_SERVICE)//创建实例
long[]pattern={1000,2000,1000,3000};//定义振动模式为停止振动时长1秒,振动时长2秒,停止振动时长1秒,振动时长3秒
vibrator.vibrate(pattern,1);//按照定义的振动模式进行振动,重复振动
在本申请的一个或多个实施例中,通过读取数组pattern的元素可以判断振动时长、停止振动时长、振动幅度、占空比等。对于按键振动反馈等振动时长较短的振动操作,可以根据振动时长和/或占空比的大小与预设阈值的比较,选择性地决定是否执行防异响的操作。
例如,在一些手机上预设的按键振动反馈(即用户触发虚拟按键的按下操作后,手机通过振动器振动来提示用户按键操作成功)的振动时长为100毫秒,每个按键之间的振动反馈的间隔不少于80毫秒,以代码的形式表现如下:
long[]pattern={80,100};//定义振动模式为停止振动时长80毫秒,振动时长100 毫秒
vibrator.vibrate(pattern,-1);//按照定义的振动模式进行振动,不重复振动
由于100毫秒的振动时间较短,几乎无法引起摄像头致动器的共振异响。因此,可以通过读取数组变量pattern的元素的方式,判断振动的时长或者幅度。假如振动时长小于300毫秒,可以不执行后述防异响的操作。
另外,是否引发共振异响不仅与单次振动的时长有关,也与停止振动时长有关。例如,一手机的短信提示振动模式如下:
long[]pattern={10,150,10,150,10,150};//定义振动模式为停止振动时长10毫秒,振动时长150毫秒,停止振动时长10毫秒,振动时长150毫秒,停止振动时长10 毫秒,振动时长150毫秒,停止振动时长10毫秒,
vibrator.vibrate(pattern,-1);//按照定义的振动模式进行振动,不重复振动
在本例中,一次短信提示对应一个振动周期的总时长是480毫秒,累计振动时长是450 毫秒,累计停止振动时长是30毫秒,振动次数是3次,占空比是450/480。尽管每次振动时长都小于300毫秒,但由于夹杂在振动时长中间的停止振动时长较短,前后两次振动时长产生的机械波存在重叠,仍会造成摄像头致动器因共振而异响。对于这种情况,可以采用同时比较振动时间和停止振动时间的方式,判断是否执行后述的防异响操作。例如,读取数组变量 pattern的元素,判断振动波长小于等于300毫秒且大于100毫秒,并且振动间的停止振动时长小于等于10毫秒的,可以执行防异响的操作,继续执行步骤605至610;否则不执行防异响的操作,跳转到执行步骤S607和S608。又例如,收到短信后测量振动器的振动时长,或者检测通过I/O总线发送给振动器驱动IC的电平信号的时长,从开始首次振动起的500毫秒的时间窗内,测得累计的振动时间(振动器的实际振动时间之和,或者发送给振动器驱动IC 的特定电平信号的时间之和)为450毫秒,大于预设的400毫秒的阈值,则执行防异响的操作;假如测得累计的振动时间小于400毫秒,则不执行防异响的操作。类似地,在一些实施例中,,检测在一个时间窗内振动器的振动次数,若振动次数大于一个预设阈值(例如4次),则执行防异响的操作;若振动次数小于预设阈值,则不执行防异响的操作。例如,用户用虚拟键盘进行输入操作,当用户在2秒的时间窗内,触发的按键按下操作数大于4,则执行防异响的操作,否则不执行。在本申请的各实施例中,均不对测量振动时长和振动次数的方法做出特别限定。
步骤605:Vibrator Manager向第二摄像头致动器驱动程序发送第一ioctl指令。
VibratorManager查询振动器开始振动时,开启设备节点dev/hicam_actuator,向位于内核层的第二摄像头致动器驱动程序(Second Camera Actuator Driver)的下发ioctl指令,指令内容为HICAM_ACTUATOR_ENABLE,从而使第二摄像头致动器驱动程序记录致动器300 进入防异响状态,并控制致动器300。
步骤606:第二摄像头致动器驱动程序向摄像头106发送推动摄像头106致动器的第一推动指令。
第二摄像头致动器驱动程序接收ioctl指令(HICAM_ACTUATOR_ENABLE)后,开始执行上电(Power Up)操作。在上电操作完成后,第二摄像头致动器驱动程序通过摄像头控制接口(Camera Control Interface,CCI)向摄像头106的致动器300的驱动IC下发工作模式和code指令,命令致动器300推动载体310到预设位置,从而避免手机的振动器200振动时载体310因共振碰撞外壳301等产生异响。在本申请的多个实施例中,“推动致动器”可以被理解为推动致动器的载体,使该载体发生物理位置上的移动。在一些实施例中,前述预设位置位于下电位置和行程两个端点位置(即靠近顶盖或底座)之间的位置。若载体310被推到行程的顶端位置(即载体的可移动范围中最靠近顶盖的位置)或者底端位置(即载体的可移动范围中最靠近底座303的位置),则载体310发生共振时容易碰撞顶盖或者底座303,产生新的异响。因此,在本实施例中,致动器300将载体310推动到预设的微距位置(即微距模式拍摄时搭载了透镜的载体移动到的位置)。该微距位置介于下电位置和靠近顶盖一侧的行程顶端之间的位置,从而不仅避免了碰撞外壳的侧壁,同时也避免了因过于靠近顶盖而发生碰撞的情况。在一个或多个实施例中,预设位置还可以位于下电位置与底座之间的位置。此外,在采用了底置式的音圈马达作为摄像头致动器的实施例中,预设位置可以位于底座位置和顶盖位置之间的其他位置。在一些实施例中,预设位置可以有多个。根据发往振动器的振动指令中振动时长等,致动器的载体推动到对应不同的预设位置。例如,当振动时长大于等于300毫秒,且小于500毫秒时,致动器将载体推动到第一预设位置;当振动时长大于等于500毫秒,且小于800毫秒时,致动器将载体推动到第二预设位置;当振动时长为大于等于800毫秒时,致动器将载体推动到第三预设位置。其中,第一预设位置距离下电位置之间的距离,大于第二预设位置距离下电位置之间的距离,并且第二预设位置距离下电位置之间的距离,大于第三预设位置距离下电位置之间的距离。
步骤607:VibratorManager向振动器驱动程序发送振动器振动的指令。
VibratorManager通过调用InputDevice来控制手机的振动器200开始振动。
在一些实施例中,步骤607与步骤605可以并行执行,例如分别创建不同线程,以便节省执行的时间。在其他实施例中,步骤607可以在步骤605之前执行,也可以在步骤605或者步骤606之后再执行。
步骤S608:VibratorManager向振动器驱动程序发送振动器停止振动的指令。
VibratorService下发给VibratorManager的振动指令包括振动时长、停止振动时长和振动模式等振动参数。VibratorManager识别由VibratorService下发的振动指令的振动时长结束后,通过InputDevice控制手机振动器结束振动。
步骤S609:VibratorManager向第二摄像头致动器驱动程序发送第二ioctl指令。
VibratorManager识别振动时长结束后,向第二摄像头致动器驱动程序下发第二ioctl指令,指令内容为HICAM_ACTUATOR_DISABLE,命令致动器300进入下电状态。
步骤S610:第二摄像头致动器驱动程序发送推动摄像头106致动器的第二推动指令。
第二摄像头致动器驱动程序接收第二ioctl指令后,通过CCI接口向摄像头106的致动器驱动IC下发工作模式和code,命令致动器300推动载体310到下电位置附近,以防止直接下电时载体310在上弹片弹力304a复位产生的弹力下碰撞外壳。然后再执行下电操作,停止向载体的线圈输送电流。
最后,VibratorManager关闭设备节点dev/hicam_actuator,释放对摄像头106的致动器 300的控制。
本申请实施例的方法能够有效防止或者降低手机振动器振动时,摄像头致动器的载体因碰撞外壳产生的异响,提高了用户体验,并且扩展了振动器、摄像头模组等元器件的选型范围。
根据本申请的又一实施例,为了解决振动类应用和拍摄类应用同时向摄像头的致动器下发指令,造成冲突的情况,本实施例在第二摄像头致动器驱动程序中致动器的状态标识的管理。本实施例同样能够适用于图1的手机100和图4的系统架构。
参见图7,本实施例的方法主要包括以下步骤。
步骤S701:相机应用向CameraProvider发送启动摄像头的指令。
当用户启动相机应用进行拍摄时,应用层的相机应用调用框架层的CameraService服务向CameraProvider发送启动摄像头的指令,以便启动摄像头的拍摄功能。
步骤S702:CameraProvider向第一摄像头驱动程序发送启动摄像头106的指令。
调用Camera的类的open方法,通过第一摄像头驱动程序启动摄像头。第一摄像头致动器驱动程序用于驱动摄像头致动器执行对焦等与拍摄相关的操作。
步骤S703:第一摄像头驱动程序向第二摄像头驱动程序发送ACQUIRE指令。
步骤S704:第二摄像头驱动程序记录状态标识。
参见图8,摄像头的致动器具有的以下三种状态:下电状态、防异响状态和拍摄状态,其中下电状态和防异响状态统称为非拍摄状态。这些状态以状态标识(状态标识符)的形式存储在第二摄像头致动器驱动程序内,图8给出了针对摄像头致动器的每一种状态下,在接收到来自第一摄像头致动器驱动程序发送的ACQUIRE(获取摄像头)、RELEASE(释放摄像头)指令,以及来自VibratorManager下发的ENABLE(手机振动器振动)、DISABLE(手机振动器结束振动)指令后的状态转移图。当摄像头致动器处于下电状态时,载体在上下弹片的作用下,保持在下电位置(参见图3A)。当摄像头致动器处于防异响状态时,载体被推动到预设位置。当摄像头致动器处于拍摄状态时,载体被推动位置由第一摄像头驱动程序根据相机应用的对焦需要而调整。
当第二摄像头致动器驱动程序收到来自第一摄像头致动器驱动程序、或者VibratorManager的发出的指令时,根据其存储的代表了致动器的当前状态的状态标识和收到的指令,按照表1和表2,记录新的状态标识,并驱动致动器执行对应的动作。表1是图8的另一种表现形式,表示了致动器的状态转换情况,表2表示了致动器在状态变化时执行的对应动作。其中,表1首列的状态列记载了致动器的当前状态,第2~5列的第2~4行记载致动器的当前状态在当前状态下,接收到该列第1行的指令后,跳转后的状态。表2表示当致动器完成状态的跳转后,驱动程序和致动器执行哪些操作。
在本实施例中,当第二摄像头致动器驱动程序的当前状态是下电状态时,第二摄像头致动器驱动程序接到从第一摄像头致动器驱动程序发送的ACQUIRE指令后,跳转为拍摄状态,即将存储在第二摄像头致动器驱动程序的状态标识从“下电状态”记录为“拍摄状态”,致动器 300无动作(表2的第二行第二列)。
在一个或多个实施例中,当第二摄像头驱动程序内存储的摄像头106致动器的状态标识为拍摄状态时,第二摄像头驱动程序接收来自VibratorManager下发的ENABLE指令后,既不驱动摄像头106的致动器300(表2第四行第四列),也不变更其存储的摄像头106致动器的状态标识(表1第四行第四列)。
表1致动器的状态转换表
表2致动器的动作对应表
需要指出的是,在上一实施例中,也可以通过读取存储在第二摄像头致动器驱动程序中的致动器的状态提示符的方式,获取摄像头的工作状态,以取代步骤S602。
步骤S705:第一摄像头驱动程序向摄像头106致动器发送推动摄像头106致动器的指令。
第一摄像头驱动程序向摄像头106的致动器300发送推动指令,根据相机应用的对焦需要而调整摄像头106的致动器300的载体310的推动位置。
步骤S706:通话应用向VibratorManager发送振动器振动的指令。
当手机接到第一来电时,通话应用向VibratorManager发送振动器振动的指令,以便提醒用户接听。
步骤S707:VibratorManager向第二摄像头驱动程序发送第一ioctl指令。
VibratorManager查询振动器开始振动时,开启设备节点dev/hicam_actuator,向位于内核层的第二摄像头致动器驱动程序(Second Camera Actuator Driver)的下发ioctl指令,指令内容为HICAM_ACTUATOR_ENABLE。
步骤S708:第二摄像头驱动程序向VibratorManager反馈摄像头106致动器的状态标识的信息。
第二摄像头驱动程序根据其存储的“拍摄状态”的致动器300的状态标识的信息和接收到的ENABLE指令,将致动器300的状态标识仍记录为“拍摄状态”,不向致动器300下发推动指令(表2第四行第四列)。第二摄像头驱动程序向VibratorManager发送摄像头106的致动器300的当前状态为拍摄状态,即不执行防止异响的操作。
步骤S709:相机应用向CameraProvider发送关闭摄像头106的指令。
步骤S710:CameraProvider向第一摄像头驱动程序发送关闭摄像头106的指令。
当用户关闭相机应用,或者将相机应用切换至后台时,相机应用向CameraProvider发送关闭摄像头106的指令。然后CameraProvider向第一摄像头驱动程序发送关闭摄像头106 的指令。
步骤S711:第一摄像头驱动程序向第二摄像头驱动程序发送RELEASE指令。
步骤S712:第二摄像头驱动程序记录摄像头致动器状态标识。
第二摄像头驱动程序收到来自第一摄像头驱动程序发送的RELEASE指令后,根据其存储的“拍摄状态”的致动器300的状态标识的信息和接收到的RELEASE指令,将致动器300 的状态标识记录为“下电状态”,不向致动器300发出推动指令(表2第四行第二列)。在其他实施例中,第二摄像头驱动程序也可以将致动器300的状态标识记录为“下电状态”的同时,通过CCI接口向摄像头106的致动器300的驱动IC下发工作模式和code,命令致动器300推动载体310到下电位置附近,以防止直接下电时载体310在上弹片弹力304a复位产生的弹力下碰撞外壳301。然后再执行下电操作,停止向载体的线圈输送电流。
步骤S713:通话应用再次向VibratorManager发送振动器振动的指令。
当手机接到第一来电时,通话应用再次向VibratorManager发送振动器振动的指令,以便提醒用户接听。
步骤S714:VibratorManager向第二摄像头驱动程序发送第二ioctl指令。
VibratorManager开启设备节点dev/hicam_actuator,向位于内核层的第二摄像头致动器驱动程序(Second Camera Actuator Driver)的下发ioctl指令,指令内容为HICAM_ACTUATOR_ENABLE。可选地,第二摄像头驱动程序向VibratorManager发送摄像头106致动器的当前状态为下电状态,即可以执行防止异响的操作。
步骤S715:第二摄像头驱动程序向摄像头106致动器发送推动摄像头106致动器的指令。
第二摄像头驱动程序向摄像头106致动器发送推动摄像头106的致动器300的指令,将摄像头106的致动器300的载体310推动到微距位置,从而避免了当振动器200振动时载体 310由于共振发出的异响。
参见图9,根据本发明的又一实施例,提供了一种摄像头的控制方法。
在本实施例中,步骤S901至S906与前一实施例的步骤S701至S706基本相同,步骤S908至S912与上一实施例的步骤S709至S713基本相同,步骤S914至S915与上一实施例的步骤S714至S715基本相同,在此不再赘述。
步骤S907和步骤S913:VibratorManager向CameraService查询摄像头是否被开启。
VibratorManager可以直接向框架层的CameraService发送查询指令,也可以经由框架层的VibratorService向同为框架层的CameraService发送查询指令,以查询摄像头是否被开启。如果VibratorManager查询到摄像头106在被使用,则用户正使用拍摄功能,此时不执行防异响操作。在一些实施例中,VibratorManager指示振动器振动,提示用户有来电。在另一些实施例中,VibratorManager向通话应用(或者计时器等低优先级的应用)等发送该摄像头106 正忙的提示,通话应用可以选择性地在屏幕显示提示提示框等其他方式提示用户,从而避免因振动器的振动干扰拍摄。
参见图10和图11,根据本发明的又一实施例,提供了一种摄像头的控制方法。
图10与图5基本相同,主要区别点在于:在图10中,用第三摄像头致动器驱动程序替代了图5中的第一摄像头致动器驱动程序和第二摄像头致动器驱动程序。此处的第三摄像头致动器驱动程序可以采用现有的第三方驱动程序,例如美国高通公司的Qcom cameraactuator driver。在本实施例中,框架层的VibratorService通过向CameraService发送指令,借助手机的软件系统原有相机服务,推动致动器300的载体310移动,从而避免在致动器300共振的影响发出异响。
参见图11,本实施例包括以下步骤:
步骤S1101至S1105与上一实施例的步骤S601至S604和S606基本相同,在此不再赘述。
步骤S1106:VibratorSevrice向CameraService发送开启摄像头106,并推动摄像头106 致动器的指令。
框架层的VibratorSevrice通过软件接口向同为框架层的CameraService发送开启摄像头 106的指令和推动摄像头106的致动器300移动载体到微距位置的指令。
步骤S1107:CameraService向摄像头106致动器发送推动摄像头106致动器的第一推动指令。
框架层的CameraService经由CameraProvider向内核层的第三摄像头致动器驱动程序推动摄像头106致动器下发推动指令。第三摄像头致动器驱动程序通过CCI接口将指令写入摄像头106的致动器300的驱动IC的寄存器,并由驱动器IC通过调整致动器300的线圈312 内电流大小及方向来推动致动器300的载体310移动到微距位置(即预设位置)。致动器的载体在该预设的位置上时,不会因振动器振动的共振而产生异响。框架层的CameraService推动摄像头106致动器移动的过程,与相机应用对焦时推动摄像头106致动器移动的过程基本相同。
步骤S1108:VibratorManager向振动器发出停止振动的指令。
当VibratorManager检测到由VibratorService发出的振动指令执行完毕时,经由振动器驱动程序发送至振动器200。振动器200收到指令后停止振动。
步骤S1109:VibratorService向CameraService发送推动致动器的指令。
当振动器的振动结束后,不再执行防异响操作,VibratorService向CameraService发出指令,推动摄像头106的致动器300回到下电位置。
步骤S1110:CameraService向摄像头106致动器发送推动摄像头106致动器的第二推动指令。
框架层的CameraService经由硬件抽象层的CameraProvider向内核层的第三摄像头致动器驱动程序下发推动指令,第三摄像头致动器驱动程序通过CCI接口将指令写入摄像头106 致动器的驱动IC的寄存器,并由驱动器IC通过调整致动器300的线圈312内电流大小及方向来推动致动器300的载体310移动到下电位置。本过程与步骤S1303基本相同,推动的方向相反,在此不再赘述。
在本实施例中,框架层的VibratorSevrice与CameraService之间建立通信,框架层的 VibratorSevrice在接到振动器振动的指令后,通过软件接口向的CameraService发送推动摄像头致动器的指令,避免振动器振动时摄像头致动器的载体因共振发生异响。由于直接利用现有的Camera通道(从框架层到硬件层),仅在框架层上做出少量修改即可实现防止共振异响的效果。
参见图12和图13,根据本发明的又一实施例,提供了一种摄像头的控制方法。
图12与图10相同,主要区别点在于:在图10中,框架层的VibratorService通过向同为框架层CameraService发送指令,借助手机的软件系统原有相机服务,推动致动器的载体移动。而在图12中,硬件抽象层的CameraProvider中还增设有子模块CameraActuatorProvider,CameraActuatorProvider位于硬件抽象层,并设有可以与的框架层的VibratorService通信的接口。框架层的VibratorService向硬件抽象层的CameraActuatorProvider发送指令,在不调起整个CameraService服务的情况下,推动致动器的载体移动来避免发出异响,有效的提高了响应速度。
在图12中,第四摄像头致动器驱动程序可以采用现有的第三方驱动程序,例如美国高通公司的Qcom camera actuator driver。在本实施例中,框架层的VibratorService通过向 CameraService发送指令,借助手机的软件系统原有相机服务,推动致动器的载体移动,从而避免在致动器共振的影响发出异响。
参见图13,本实施例包括以下步骤:
步骤S1301:通话应用调用框架层的VibratorService。
当手机100接到来电时,应用层的通话应用收到操作系统发出的来电消息,调用框架层的VibratorService服务,以命令振动器以振动的方式通知用户接听来电。
步骤S1302:VibratorService向硬件抽象层的CameraActuatorProvider发送推动摄像头 106致动器的指令。
硬件抽象层的CameraActuatorProvider设有可供VibratorService访问的软件接口, VibratorService通过该软件接口向CameraActuatorProvider下发推动摄像头106的致动器 300的指令。该指令可以包括推动的摄像头模组的设备ID、推动到的位置或者推动的方向和距离等。
步骤S1303:CameraActuatorProvider向摄像头106致动器发送推动摄像头106致动器的第一推动指令。
硬件抽象层的CameraActuatorProvider发送给内核层的第四摄像头致动器驱动程序推动摄像头106致动器的第一推动指令。第四摄像头致动器驱动程序通过CCI接口将指令写入摄像头106致动器的驱动IC的寄存器,并由驱动器IC通过调整致动器300的线圈312内电流大小及方向来推动致动器300的载体310移动到微距位置(即预设位置)。致动器300的载体 310在该预设的位置上时,不会因振动器200振动产生共振而发出异响。
步骤S1304:VibratorService向振动器发送振动指令。
框架层的VibratorService向硬件抽象层的VibratorManager发出振动器振动的指令,指令包括振动时长、停止振动时长、振动是否重复等参数。VibratorManager将上层的指令转化为使振动器200振动的ioctl指令,发送给振动器驱动程序。振动器驱动程序通过I2C接口将指令写入振动器200的驱动IC的寄存器,驱动振动器200振动。
在本实施例中,步骤S1304和步骤S1302可以以创建不同线程的方式并行执行,以便节省执行的时间。在其他实施例中,步骤S1304可以在步骤S1302之前执行,也可以在步骤S1302之后再执行。
步骤S1305:VibratorManager向振动器发出停止振动的指令。
当VibratorManager检测到由VibratorService发出的振动指令执行完毕时,经由振动器驱动程序发送至振动器200。振动器200收到指令后停止振动。
步骤S1306:VibratorService向硬件抽象层的CameraActuatorProvider发送推动摄像头 106致动器的指令。
当振动器200停止振动后,VibratorService向硬件抽象层的CameraActuatorProvider发送推动摄像头106的致动器300的载体310回到下电位置的指令,以便节省电量消耗。
步骤S1307:CameraActuatorProvider向摄像头106致动器发送推动摄像头106致动器的第二推动指令。
硬件抽象层的CameraActuatorProvider向内核层的第四摄像头致动器驱动程序下发推动指令,第四摄像头致动器驱动程序通过CCI接口将指令写入摄像头106致动器的驱动IC的寄存器,并由驱动器IC通过调整致动器300的线圈312内电流大小及方向来推动致动器300的载体310移动到下电位置。本过程与步骤S1303基本相同,推动的方向相反,在此不再赘述。致动器300的载体310在下电位置后,由于不再向致动器300的线圈312内输送电流,因此可以节省手机的电量消耗。
在现有技术中,利用原有Camera服务通路驱动摄像头致动器,从启动CameraService 服务到推动摄像头致动器,往往需要200毫秒以上的时间,难以彻底防止异响的发生。本实施例不启动CameraService服务,经由硬件抽象层或者内核层控制摄像头驱动器的载体,加快了防异响的反应速度,解决了利用原有Camera服务通路速度过慢,无法彻底防止异响的问题。
本申请又一实施例还提供一种电子设备。参见图14,为本申请实施例提供的一种电子设备的结构示意图。如图14所示,该电子设备1400可以包括处理器1410、存储器1420、振动器1430、摄像头1440和I/O接口1450,其中,处理器1410、存储器1420、振动器1430 和摄像头1440通过I/O接口1450连接。处理器1410可以包括一个或多个处理单元,例如:处理器810可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。存储器1420可以保留是硬盘、闪存等外部存储器、内部存储器或者处理器1420内的存储单元,或者它们中的一个或多个的组合。存储器1420 存储有程序,当处理器1410读取并执行该程序时,电子设备执行上述实施例中的部分或全部步骤。振动器1430可以包括转子马达、线性马达、压电陶瓷振动马达等。摄像头1440包括用于自动对焦的摄像头致动器1441,该摄像头致动器1441可以是中置电机、底置电机、闭环电机、或者超声波电机等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备1300的结构限定。在本申请另一些实施例中,电子设备1300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
本申请又一实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称: ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本申请又一实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或 a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,简称 ROM)、随机存取存储器(random access memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种摄像头的控制方法,应用于电子设备,所述电子设备具有振动器和摄像头,所述
摄像头具有摄像头致动器,所述摄像头致动器具有透镜载体,其特征在于,所述方法包括:
当所述摄像头未被使用,且所述振动器未在振动时,透镜载体在第一位置;
当所述振动器以第一时长进行振动时,所述透镜载体在所述第一位置;
当所述振动器以第二时长进行振动时,所述摄像头致动器控制所述透镜载体移动到第二位置;其中,所述第二时长大于所述第一时长,所述电子设备还存储有:第一摄像头致动器驱动程序,用于当摄像头在被使用时驱动所述摄像头致动器;以及,第二摄像头致动器驱动程序,用于当摄像头在未被使用时驱动所述摄像头致动器,当所述振动器以第二时长进行振动时,所述摄像头致动器经由所述第二摄像头致动器驱动程序,控制所述透镜载体移动到所述第二位置;
当在第三时长内,所述振动器以所述第一时长振动的次数或者累计时长小于第一阈值时,所述透镜载体在第一位置;
当在所述第三时长内,所述振动器以所述第一时长振动的次数或者累计时长大于所述第一阈值时,所述摄像头致动器控制所述透镜载体移动到所述第二位置;
检测所述摄像头是否被使用;
若所述摄像头被使用,则不振动所述振动器;
其中,所述第二位置为多个,所述摄像头致动器基于振动时长,控制前述透镜载体移动到对应的多个所述第二位置,所述振动时长与预设距离成正比,所述预设距离为所述第二位置与下电位置之间的距离,所述下电位置为所述摄像头致动器处于下电状态时载体停留的位置。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取控制所述振动器的振动时长;
若所述振动时长小于第二阈值,则所述透镜载体在所述第一位置;
若所述振动时长大于第二阈值,则所述摄像头致动器控制所述透镜载体移动到所述第二位置,
其中,所述第一位置不同于所述第二位置。
3.根据权利要求1所述的方法,其特征在于:所述摄像头致动器在接收到来自摄像头服务的第一指令后,移动所述透镜载体到所述第二位置。
4.根据权利要求3所述的方法,其特征在于:所述第一指令是从所述摄像头服务经由CameraProvider发送到所述摄像头致动器的。
5.根据权利要求1所述的方法,其特征在于:所述摄像头致动器在接收到来自CameraProvider的第二指令后,移动所述透镜载体到所述第二位置。
6.根据权利要求1所述的方法,其特征在于,所述检测所述摄像头是否在被使用的步骤包括:通过查询所述摄像头服务,检测所述摄像头是否在被使用。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
当所述振动器停止振动时,在将所述摄像头致动器下电之前,控制所述透镜载体到所述第一位置。
8.一种电子设备,其特征在于,包括用于存储计算机程序指令的存储器、用于执行程序指令的处理器、振动器和摄像头,其中,所述摄像头具有摄像头致动器,所述摄像头致动器具有透镜载体,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1-7中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311039039.XA CN117319783A (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
CN202210193594.7A CN114727010B (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210193594.7A CN114727010B (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311039039.XA Division CN117319783A (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114727010A CN114727010A (zh) | 2022-07-08 |
CN114727010B true CN114727010B (zh) | 2023-08-22 |
Family
ID=82236366
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210193594.7A Active CN114727010B (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
CN202311039039.XA Pending CN117319783A (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311039039.XA Pending CN117319783A (zh) | 2022-02-28 | 2022-02-28 | 一种摄像头的控制方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114727010B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009182680A (ja) * | 2008-01-30 | 2009-08-13 | Kyocera Corp | 携帯電子機器及びその制御方法 |
JP2013257353A (ja) * | 2012-06-11 | 2013-12-26 | Hitachi Ltd | 監視カメラ装置 |
CN107800821A (zh) * | 2017-09-30 | 2018-03-13 | 维沃移动通信有限公司 | 一种防止马达与震子共振方法及移动终端 |
CN108012058A (zh) * | 2017-12-12 | 2018-05-08 | 瑞声科技(南京)有限公司 | 抑制电子设备内摄像头振动杂音的方法 |
CN108304247A (zh) * | 2017-12-19 | 2018-07-20 | 华为技术有限公司 | 访问摄像头的方法和装置、服务器、可读存储介质 |
CN108900702A (zh) * | 2018-06-08 | 2018-11-27 | Oppo广东移动通信有限公司 | 振动提示的处理方法和装置 |
CN109981938A (zh) * | 2017-12-28 | 2019-07-05 | 广东欧珀移动通信有限公司 | 一种摄像头模组及其控制方法、电子设备、存储介质 |
CN113791696A (zh) * | 2021-08-30 | 2021-12-14 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
-
2022
- 2022-02-28 CN CN202210193594.7A patent/CN114727010B/zh active Active
- 2022-02-28 CN CN202311039039.XA patent/CN117319783A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009182680A (ja) * | 2008-01-30 | 2009-08-13 | Kyocera Corp | 携帯電子機器及びその制御方法 |
JP2013257353A (ja) * | 2012-06-11 | 2013-12-26 | Hitachi Ltd | 監視カメラ装置 |
CN107800821A (zh) * | 2017-09-30 | 2018-03-13 | 维沃移动通信有限公司 | 一种防止马达与震子共振方法及移动终端 |
CN108012058A (zh) * | 2017-12-12 | 2018-05-08 | 瑞声科技(南京)有限公司 | 抑制电子设备内摄像头振动杂音的方法 |
CN108304247A (zh) * | 2017-12-19 | 2018-07-20 | 华为技术有限公司 | 访问摄像头的方法和装置、服务器、可读存储介质 |
CN109981938A (zh) * | 2017-12-28 | 2019-07-05 | 广东欧珀移动通信有限公司 | 一种摄像头模组及其控制方法、电子设备、存储介质 |
CN108900702A (zh) * | 2018-06-08 | 2018-11-27 | Oppo广东移动通信有限公司 | 振动提示的处理方法和装置 |
CN113791696A (zh) * | 2021-08-30 | 2021-12-14 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117319783A (zh) | 2023-12-29 |
CN114727010A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3594777B1 (en) | Functional component, method for controlling functional component, and terminal | |
KR101700771B1 (ko) | 이동 단말기 | |
KR101708320B1 (ko) | 이동 단말기 | |
CN105306718B (zh) | 事件提示方法及装置 | |
US8258657B2 (en) | Vibration motor | |
CN110312038B (zh) | 信息提示方法及装置、电子设备、计算机可读存储介质 | |
KR20130114716A (ko) | 국부적 및 전반적 햅틱 피드백을 제공하는 선형 진동기 | |
KR20100044381A (ko) | 진동 모터 | |
JP5126576B2 (ja) | 振動体、触覚機能付きの入力装置及び電子機器 | |
CN208580354U (zh) | 前置组件滑动结构及终端 | |
WO2020125533A1 (zh) | 一种线性谐振装置及其刹车方法 | |
US20150119109A1 (en) | Electronic device, control method, and control program | |
RU2701456C1 (ru) | Скользящая конструкция переднего узла, способ и устройство управления, терминал и носитель данных | |
KR101597026B1 (ko) | 충격진동 발생장치와 이를 이용한 응용장치 | |
CN105159424A (zh) | 散热结构以及散热方法、装置和移动设备 | |
CN114727010B (zh) | 一种摄像头的控制方法、设备和存储介质 | |
CN113708590A (zh) | 线性振动马达、触觉反馈振动模组、控制方法及装置 | |
CN103347147B (zh) | 多匝线圈复用电路、多匝线圈复用电路的控制方法及设备 | |
CN102223958B (zh) | 线性振动器 | |
CN210670547U (zh) | 扬声器装置和移动终端 | |
EP3758344B1 (en) | Screen component and mobile terminal | |
CN114125095A (zh) | 一种终端设备、振动噪音的控制方法、装置及介质 | |
CN112911472A (zh) | 扬声器装置和移动终端 | |
CN216852239U (zh) | 扬声器及终端设备 | |
JP2019220160A (ja) | クリスプなハプティック効果を発生させるための基準信号変動 |
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 |