拍摄模式切换方法技术

技术编号:39488629 阅读:5 留言:0更新日期:2023-11-24 11:09
本申请提供一种拍摄模式切换方法

【技术实现步骤摘要】
拍摄模式切换方法、装置、电子设备及可读存储介质


[0001]本申请涉及终端
,尤其涉及一种拍摄模式切换方法

装置

电子设备及可读存储介质


技术介绍

[0002]手机等电子设备的相机通常包括前摄

后摄等多种拍摄模式,用户可以开启相机后根据拍摄需求切换不同的拍摄模式

在每种拍摄模式下,手机都会创建对应的相机线程

相机由一种拍摄模式切换为另一种拍摄模式,手机则会将切换前的拍摄模式对应的已有相机线程释放,并为切换后的拍摄模式创建一个对应的新相机线程

释放已有相机线程和创建新相机线程并行操作

[0003]各相机线程创建时,都会创建至少两个节点,那么,在释放相机线程时也需要将创建的这至少两个节点先后释放

例如,相机线程创建的节点包括设备调用句柄和入口函数集合

[0004]那么,已有相机线程的至少两个节点的释放操作,和新相机线程的至少两个节点的创建操作,可能出现由于新相机线程的节点被创建后在已有相机线程的节点释放操作中被释放等类似逻辑,导致已有相机线程创建异常,进而出现切换拍摄模式后相机闪退等异常情况

[0005]可见,现有的相机应用内的线程切换方案可能导致相机闪退等异常情况


技术实现思路

[0006]本申请实施例提供一种拍摄模式切换方法

装置

电子设备及可读存储介质,用于在电子设备打开相机应用并切换拍摄模式的场景中,将切换前的第一拍摄模式的第一任务线程进行标记,以通过标记来避免第一任务线程的释放操作影响切换后的第二拍摄模式的第二任务线程的创建操作

这样可以有效避免相机应用在切换拍摄模式时由于线程切换方案导致的相机闪退等异常情况,保证相机应用在切换拍摄模式后也能正常运行

[0007]为达到上述目的,本申请的实施例采用如下技术方案:
[0008]第一方面,提供了一种拍摄模式切换方法

所提供的拍摄模式切换方法应用于电子设备,电子设备内安装有相机模组,电子设备运行相机应用,通过调用相机模组实现不同拍摄模式下拍摄图像

本申请提供的拍摄模式切换方法,主要涉及两种拍摄模式切换时,电子设备内部进行线程释放和线程创建的过程

[0009]具体的,电子设备先接收第一操作,该第一操作用于触发所述电子设备在第一拍摄模式下拍摄图像,第一操作可以为电子设备打开相机应用的操作,也可以为电子设备选择一种拍摄模式的操作,例如点击专业

大光圈

夜景等拍摄模式的操作,可以将在先的拍摄模式定义为第一拍摄模式

电子设备响应于该第一操作,创建所述第一拍摄模式对应的第一任务线程,创建第一任务线程的操作可以有多个,例如,创建全局变量

局部变量等,本申请实施例中,创建第一任务线程的操作可以包括,创建第一句柄模组和创建第一入口函
数的操作

[0010]之后,电子设备接收第二操作,该第二操作用于触发所述电子设备由所述第一拍摄模式切换为第二拍摄模式,第二拍摄模式可以为不同于第一拍摄模式的其他拍摄模式,例如自拍模式

双景录像模式等

电子设备切换为第二拍摄模式之后,可以在该第二拍摄模式下拍摄图像

电子设备在切换为第二拍摄模式之后,需要为第二拍摄模式创建第二任务线程,例如,创建第二局部变量或者创建第二全局变量等

[0011]由于电子设备已经切换为第二拍摄模式,就不需要第一拍摄模式下拍摄图像,那么,在先创建的第一拍摄模式对应的第一任务线程就不需要继续保留,需要释放第一任务线程

电子设备释放第一任务线程和创建第二任务线程的操作可以先后执行,也可以并行交叉执行

为了避免并行交叉执行中可能导致第二任务现场创建失败的异常情况,电子设备可以为第一任务线程添加第一标记,添加第一标记的方式可以有多种,例如添加待释放状态的状态标识,或者添加线程锁等

其中,所述第一标记用于指示所述第一任务线程的全局变量对应的内存不可用,基于所述第一标记,在创建所述第二任务线程过程中为所述第二任务线程的全局变量分配的内存与所述第一任务线程的全局变量对应的内存不同

[0012]这样,本申请提供的拍摄模式切换方法,在拍摄模式切换过程中,为切换前的拍摄模式对应的第一任务线程添加第一标记,以指示第一任务线程的全局变量对应的内存不可用,这样可以有效避免在创建所述第二任务线程过程中,为所述第二任务线程的全局变量分配的内存与所述第一任务线程的全局变量对应的内存相同
(
也称为内存冲突
)
导致第二任务线程创建失败的异常情况,保证了电子设备切换拍摄模式后能在切换后的第二拍摄模式下正常拍摄图像

[0013]在第一方面的一种具体实施方式中,切换前的第一拍摄模式和切换后的第二拍摄模式可以均为单景拍摄模式

该单景拍摄模式可以为只需要进行前景拍摄或者只需要进行后景拍摄

单景拍摄模式下,只需要创建一个对应的任务线程,在关闭单景拍摄模式时也只需要释放一个对应的任务线程

若切换前后均为单景拍摄模式,那么切换后需要释放一个任务线程
(
即第一任务线程
)
,创建一个任务线程
(
即第二任务线程
)。
[0014]根据第一方面的另一种可能实施方式,切换前的第一拍摄模式为单景拍摄模式,切换后的第二拍摄模式为多景拍摄模式

那么,在切换后,需要释放的第一拍摄模式的任务线程包括第一任务线程,需要创建的第二拍摄模式的任务线程,除了第二任务线程之外,还需要再创建一个第三任务线程,通过该第二任务线程和第三任务线程才能完成该第二拍摄模式的拍摄操作

[0015]根据第一方面的另一种可能实施方式,切换前的第一拍摄模式为多景拍摄模式,切换后的第二拍摄模式为单景拍摄模式

那么,在开启第一拍摄模式时,除了创建第一任务线程外,还需要再创建一个第四任务线程,第一任务线程和第四任务线程配合完成该第一拍摄任务的拍摄操作

对应的,在切换为第二拍摄模式后,需要释放的第一拍摄模式的第一任务线程和第四任务线程,以及创建第二拍摄模式的第二任务线程

[0016]当然,在其他可能实施方式中,切换前的第一拍摄模式和切换后的第二拍摄模式都可以为多景拍摄模式,例如由多景拍照模式切换为多景录像模式

那么,切换后,需要释放第一拍摄模式的第一任务线程和第四任务线程,以及创建第二拍摄模式的第二任务线程和第三任务线程<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种拍摄模式切换方法,其特征在于,应用于电子设备,所述方法包括:接收第一操作,所述第一操作用于触发所述电子设备在第一拍摄模式下拍摄图像;响应于所述第一操作,创建所述第一拍摄模式对应的第一任务线程;接收第二操作,所述第二操作用于触发所述电子设备由所述第一拍摄模式切换为第二拍摄模式,在所述第二拍摄模式下拍摄图像;响应于所述第二操作,为所述第一任务线程添加第一标记,释放所述第一任务线程,创建所述第二拍摄模式对应的第二任务线程;其中,所述第一标记用于指示所述第一任务线程的全局变量对应的内存不可用;基于所述第一标记,在创建所述第二任务线程的过程中为所述第二任务线程的全局变量分配的内存与所述第一任务线程的全局变量对应的内存不同
。2.
根据权利要求1所述的拍摄模式切换方法,其特征在于,所述第一拍摄模式和所述第二拍摄模式均为单景拍摄模式
。3.
根据权利要求1所述的拍摄模式切换方法,其特征在于,所述第一拍摄模式为单景拍摄模式,所述第二拍摄模式多景拍摄模式;所述方法还包括:响应于所述第二操作,创建所述第二拍摄模式对应的第三任务线程;响应于所述第二操作,基于所述第一标记,在创建所述第三任务线程过程中为所述第三任务线程的全局变量分配的内存与所述第一任务线程的全局变量对应的内存不同
。4.
根据权利要求1所述的拍摄模式切换方法,其特征在于,所述第一拍摄模式为多景拍摄模式,所述第二拍摄模式为单景拍摄模式;所述方法还包括:响应于所述第一操作,创建所述第一拍摄模式对应的第四任务线程;响应于所述第二操作,为所述第四任务线程添加所述第一标记,释放所述第四任务线程;其中,基于所述第一标记,在创建所述第二任务线程过程中为所述第二任务线程的全局变量分配的内存与所述第四任务线程的全局变量对应的内存不同
。5.
根据权利要求1至4中任一项所述的拍摄模式切换方法,其特征在于,所述第一任务线程包括第一局部变量和第一全局变量,所述第二任务线程包括第二局部变量和第二全局变量;所述创建所述第一拍摄模式对应的第一任务线程的步骤,包括:创建所述第一局部变量,创建所述第一全局变量,通过地址指针将所述第一局部变量对应的内存和所述第一全局变量对应的内存相互关联;所述释放所述第一任务线程的步骤,包括:释放所述第一局部变量,释放所述第一全局变量,取消所述第一局部变量对应的内存和所述第二局部变量对应的内存之间的关联;所述创建所述第二拍摄模式对应的第二任务线程的步骤,包括:创建所述第二局部变量,并创建所述第二全局变量,通过地址指针将所述第二局部变量对应的内存与所述第二全局变量对应的内存关联
。6.
根据权利要求5所述的拍摄模式切换方法,其特征在于,所述响应于所述第二操作,为所述第一任务线程添加第一标记,释放所述第一任务线程,创建所述第二拍摄模式对应的第二任务线程,包括:响应于所述第二操作,为所述第一全局变量添加所述第一标记,释放所述第一局部变
量,释放所述第一全局变量;创建所述第二局部变量,查询是否存在第三全局变量;其中,所述第三全局变量为对应内存通过地址指针与所述第二局部变量对应的内存...

【专利技术属性】
技术研发人员:梁友谷联强刘帆何肖钢
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1