[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN118450249A - 摄像头切换方法及电子设备 - Google Patents

摄像头切换方法及电子设备 Download PDF

Info

Publication number
CN118450249A
CN118450249A CN202311267256.4A CN202311267256A CN118450249A CN 118450249 A CN118450249 A CN 118450249A CN 202311267256 A CN202311267256 A CN 202311267256A CN 118450249 A CN118450249 A CN 118450249A
Authority
CN
China
Prior art keywords
camera
session
service
management service
link
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
CN202311267256.4A
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 CN202311267256.4A priority Critical patent/CN118450249A/zh
Publication of CN118450249A publication Critical patent/CN118450249A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • H04N23/662Transmitting camera control signals through networks, e.g. control via the Internet by using master/slave camera arrangements for affecting the control of camera image capture, e.g. placing the camera in a desirable condition to capture a desired image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)

Abstract

本申请公开了摄像头切换方法及电子设备,该方法包括:针对第一设备将调用的摄像头从第二设备的第一摄像头切换至第二设备的第二摄像头的场景,可在第一设备与第二设备之间创建第二会话来保活第一链路;第一链路可承载第二会话以及传输视频流的会话。如此,在传输视频流的会话在关闭/新建时,第一链路不会断开也无需重建,从而降低摄像头切换的时延。

Description

摄像头切换方法及电子设备
技术领域
本申请实施例涉及终端技术领域,尤其涉及摄像头切换方法及电子设备。
背景技术
在使用平板、笔记本电脑等电子设备中的一些应用的过程中,可能需要随时调用摄像头拍摄图片或者视频。例如,在通过笔记本电脑召开视频会议时,可能需要在笔记本电脑展示视频会议的文档的同时,通过笔记本电脑的自带摄像头拍摄视频并显示视频。然而,由于笔记本电脑的体积较大或自带摄像头的摄像能力有限,通过自带摄像头来拍摄的灵活性不高。
为了提高拍摄的灵活性,目前可以通过跨设备调用摄像头来进行拍摄。例如,在通过笔记本电脑召开视频会议时,笔记本电脑调用手机的摄像头进行拍摄,且显示手机摄像头拍摄到的画面。然而,在跨设备调用摄像头时,若涉及到切换摄像头,如将已调用的手机的前置摄像头切换至手机的后置摄像头,则需要在关闭手机的前置摄像头时先断开笔记本电脑与手机的链路,再重新建立新的链路并打开手机的后置摄像头。该过程中,链路断开以及重建的过程会导致摄像头切换的时延较大。如何在跨设备调用摄像头时,降低摄像头切换的时延成为亟待解决的问题之一。
发明内容
本申请提供了一种摄像头切换方法及电子设备,能够在跨设备调用摄像头时,降低摄像头切换的时延。
第一方面,本申请提供了一种摄像头切换方法,应用于第一设备,该方法包括:在第一设备接收由第二设备的第一摄像头采集的第一视频流的情况下,显示第一控件;第一设备与第二设备建立第一链路;第一视频流经由承载于第一链路中的第一会话传输;第一控件用于将第一设备调用的摄像头切换成第二设备的第二摄像头;响应于用户对第一控件的操作,与第二设备建立第二会话;第二会话承载于第一链路上,且用于保活第一链路;向第二设备发送第一关闭请求;第一关闭请求用于指示第二设备关闭第一会话以及关闭第一摄像头;在第一会话成功关闭后,与第二设备建立第三会话,并向第二设备发送第一打开请求;第一打开请求用于指示第二设备启动第二摄像头;第三会话承载于第一链路上;接收第二视频流;第二视频流经由第二设备的第二摄像头采集,并经由第三会话传输至第一设备。
综上,针对第一设备将调用的摄像头从第二设备的第一摄像头切换至第二摄像头的场景,本申请可在向第二设备发送第一关闭请求之前,在第一设备与第二设备之间创建第二会话来保活第一链路。基于此,即便第二设备在关闭第一摄像头以及断开与第一设备的第一会话之后,第一链路也不会断开,相应地,也就无需在第二设备打开第二摄像头以及创建第三会话之前,来创建一个新的链路承载第三会话。由此可见,本申请可通过省略第一链路的断开与重建步骤,来降低摄像头切换的时延。
在一种可能的实现方式中,第二会话的保活时长大于或等于第二会话成功建立的时刻至第三会话成功建立的时刻之间的时间间隔。
对于第一链路而言,一旦有会话承载于第一链路,则第一链路不会断开。因此,在创建第二会话时,可设置第二会话的保活时长,并通过设置第二会话的保活时长持续到第三会话成功建立之前,使得第二会话能够充分保证在第三会话成功创建前第一链路不会断开,即无需重建第一链路。
在一种可能的实现方式中,第二设备是在第一设备的近场通信范围内和/或与第一设备中登录相同的用户账号的设备。
这样,可以在互相信任的设备之间,通过近场通信来实现跨设备调用摄像头并传输视频流。
在一种可能的实现方式中,第一控件包括摄像头翻转控件,摄像头翻转控件用于在第一摄像头和第二摄像头之间实现翻转切换;或者,第一控件包括第二摄像头的选项控件。
也即是说,第一设备可显示摄像头翻转控件,用户可直接点击摄像头翻转控件,将第一设备调用的摄像头由第一摄像头切换至第二摄像头。或者,第一设备显示多个摄像头的选项控件,多个摄像头的选项控件包括第二摄像头的选项控件,则用户可以直接点击第二摄像头的选项控件(相当于用户选取了第二摄像头),将第一设备调用的摄像头由第一摄像头切换至第二摄像头。
第二方面,本申请提供了一种摄像头切换方法,应用于第二设备,该方法包括:在向第一设备发送由第二设备的第一摄像头采集的第一视频流的情况下,与第一设备建立第二会话;第一设备与第二设备建立第一链路;第一视频流经由承载于第一链路中的第一会话传输;第二会话承载于第一链路上,且用于保活第一链路;接收第一设备发送的第一关闭请求,响应于第一关闭请求,关闭第一会话以及第一摄像头;在第一会话成功关闭后,与第二设备建立第三会话;接收第一设备发送的第一打开请求,响应于第一打开请求,启动第二摄像头;向第一设备发送第二视频流;第二视频流经由第二摄像头采集,并经由第三会话传输至第一设备。
综上,针对第一设备将调用的摄像头从第二设备的第一摄像头切换至第二摄像头的场景,本申请可在第二设备成功关闭第一摄像头之前,在第一设备与第二设备之间创建第二会话来保活第一链路。基于此,即便第二设备在关闭第一摄像头以及断开与第一设备的第一会话之后,第一链路也不会断开,相应地,也就无需在第二设备打开第二摄像头以及创建第三会话之前,来创建一个新的链路承载第三会话。由此可见,本申请可通过省略第一链路的断开与重建步骤,来降低摄像头切换的时延。
在一种可能的实现方式中,第二会话的保活时长大于或等于第二会话成功建立的时刻至第三会话成功建立的时刻之间的时间间隔。
这样,可通过设置第二会话的保活时长持续到第三会话成功建立之前,使得第二会话能够充分保证在第三会话成功创建前第一链路不会断开,即无需重建第一链路。
在一种可能的实现方式中,第一设备包括摄像头管理服务,第二设备包括摄像头业务服务以及摄像头管理服务;上述与第一设备建立第二会话,包括:第二设备的摄像头管理服务与第一设备的摄像头管理服务建立第二会话;上述关闭第一会话以及第一摄像头,包括:在第二设备的摄像头管理服务与第一设备的摄像头管理服务建立第二会话之后,第二设备的摄像头管理服务检测是否接收到第一指令;第一指令用于指示关闭第一会话以及第一摄像头;若第二设备的摄像头管理服务接收到第一指令,则第二设备的摄像头管理服务关闭第一会话以及第一摄像头;或者,若第二设备的摄像头管理服务未接收到第一指令,则第二设备的摄像头管理服务向摄像头业务服务查询第一摄像头的服务状态;若第一摄像头的服务状态为无服务状态,则第二设备的摄像头管理服务关闭第一会话以及第一摄像头。
这样,可以在第二设备的摄像头管理服务与第一设备的摄像头管理服务建立第二会话之后,第二设备的摄像头管理服务通过检测是否收到第一指令,来执行关闭第一会话以及第一摄像头。同时,对于未收到第一指令的情况,由于第一指令在由摄像头业务服务发送至摄像头管理服务的过程中,可能由于传输异常或者传输时延,摄像头管理服务无法收到第一指令,因此摄像头管理服务可主动向摄像头业务服务查询第一摄像头的服务状态,并根据第一摄像头的服务状态来执行关闭第一会话以及第一摄像头。基于此,可在未收到第一指令时,通过主动查询第一摄像头的服务状态,使第一摄像头的工作状态(如启动/关闭)与服务状态保持一致。
在一种可能的实现方式中,在上述关闭第一会话以及第一摄像头之前,该方法还包括:响应于第一设备发送的第一关闭请求,第二设备的摄像头业务服务将第一摄像头的服务状态由服务状态更新为无服务状态;第二设备的摄像头业务服务向第二设备的摄像头管理服务发送第一指令。
这样,第二设备可在接收到第一关闭请求时,就在第二设备的摄像头业务服务中,将第一摄像头的服务状态更新为无服务状态,并向第二设备的摄像头管理服务发送第一指令,使第二设备的摄像头管理服务可以基于第一指令,或第一摄像头的服务状态,来决定是否需要执行关闭第一摄像头以及第一会话。
在一种可能的实现方式中,上述响应于第一设备发送的第一打开请求,启动第二摄像头,包括:响应于第一设备发送的第一打开请求,第二设备的摄像头业务服务向第二设备的摄像头管理服务发送第二指令;第二指令用于指示启动第二摄像头;第二设备的摄像头管理服务响应于第二指令,查询第一摄像头的工作状态和第二摄像头的工作状态;若第一摄像头的工作状态为启动状态且第二摄像头的工作状态为关闭状态,则关闭第一摄像头,并在第一摄像头成功关闭之后,启动第二摄像头;或者,若第一摄像头的工作状态为关闭状态且第二摄像头的工作状态为关闭状态,则启动第二摄像头。
由于在接收到第一打开请求时,第二设备的摄像头管理服务执行第一摄像头的关闭流程未执行完,因此在打开第二摄像头之前,需要查询第一摄像头与第二摄像头的工作状态,以确保打开第二摄像头时不会出现错误或异常,从而提高摄像头切换的准确性。
在一种可能的实现方式中,第二设备是在第一设备的近场通信范围内和/或与第一设备中登录相同的用户账号的设备。
这样,可以在互相信任的设备之间,通过近场通信来实现跨设备调用摄像头并传输视频流。
第三方面,本申请提供了一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述第一方面及其任一项可能的实现方式中的摄像头切换方法,或执行上述第二方面及其任一项可能的实现方式中的摄像头切换方法。
第四方面,本申请提供了一种通信系统,该通信系统包括上述第一方面或上述第二方面的任一项可能的实现方式中的第一设备和第二设备,且用于执行上述第一方面、上述第二方面及其任一项可能的实现方式中的摄像头切换方法。
第五方面,本申请提供了一种摄像头切换装置,该摄像头切换装置包括用于执行上述第一方面及其任一项可能的实现方式中的摄像头切换方法的功能/单元,或用于执行上述第二方面及其任一项可能的实现方式中的摄像头切换方法的功能/单元。
第六方面,本申请提供了一种芯片系统,芯片系统应用于电子设备,芯片系统包括至少一个处理器以及接口,接口用于接收计算机指令,并传输至至少一个处理器;至少一个处理器运行计算机指令使得电子设备执行上述第一方面及其任一项可能的实现方式中的摄像头切换方法,或执行上述第二方面及其任一项可能的实现方式中的摄像头切换方法。
第七方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及其任一项可能的实现方式中的摄像头切换方法,或执行上述第二方面及其任一项可能的实现方式中的摄像头切换方法。
第八方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面及其任一项可能的实现方式中的摄像头切换方法,或执行上述第二方面及其任一项可能的实现方式中的摄像头切换方法。
可以理解地,上述提供的电子设备、通信系统、摄像头切换装置、芯片系统,计算机可读存储介质,计算机程序产品所能达到的有益效果,可参考第一方面、第二方面及其任一种可能的实现方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种通信系统的组成示意图;
图2A为本申请实施例提供的一种摄像头切换场景的示意图;
图2B为本申请实施例提供的另一种摄像头切换场景的示意图;
图3为本申请实施例提供的一种电子设备的硬件结构图;
图4A为本申请实施例提供的第一设备的软件架构图;
图4B为本申请实施例提供的第二设备的软件架构图;
图5为本申请实施例提供的摄像头切换方法的流程示意图;
图6为本申请实施例提供的显示第一控件的场景示意图;
图7为本申请实施例提供的一种摄像头切换方法中的软件交互流程图;
图8为本申请实施例提供的一种芯片系统的结构图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的时间、日期、文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
为了便于理解,下面先对本申请实施例中的通信系统进行介绍:
本申请实施例提供了一种通信系统,参见图1,通信系统包括第一设备(如图1所示的笔记本电脑110)和至少一个第二设备(如图1所示的手机120以及平板130)。
其中,用户可通过第一设备来调用任一第二设备的摄像头进行拍摄,任一第二设备向第一设备返回由调用的摄像头采集到的图像数据(如视频流),第一设备基于接收到的图像数据进行显示。
在用户通过第一设备调用任一第二设备的摄像头进行拍摄时,包括打开摄像头、关闭摄像头、以及切换摄像头的情况。以笔记本电脑110调用平板130的摄像头为例:
打开摄像头:当用户需通过笔记本电脑110打开平板130的任一摄像头时,可以由笔记本电脑110向平板130发送摄像头的打开请求;平板130在接收到打开请求之后,响应于打开请求启动相应的摄像头进行拍摄。然后平板130可将启动的摄像头所采集的图像数据发送至笔记本电脑110进行显示。
关闭摄像头:当用户需通过笔记本电脑110关闭平板130的任一摄像头时,可以由笔记本电脑110向平板130发送摄像头的关闭请求,平板130在接收到关闭请求之后,响应于关闭请求关闭相应的摄像头,并停止发送摄像头所采集的图像数据。
切换摄像头:当用户需通过笔记本电脑110切换已调用平板130的摄像头时,可以由笔记本电脑110向平板130发送第一摄像头(如前置摄像头)的关闭请求,以及第二摄像头(如后置摄像头)的打开请求。平板130在接收到第一摄像头的关闭请求,以及第二摄像头的打开请求之后,关闭第一摄像头并启动第二摄像头。然后平板130可以将启动的第二摄像头所采集的图像数据发送至笔记本电脑110进行显示。基于此,可实现笔记本电脑110跨设备调用摄像头的切换(如实现将调用的摄像头由平板130的前置摄像头切换为平板130的后置摄像头)。
在第一设备调用任一第二设备的摄像头进行拍摄前,第一设备与任一第二设备之间可以建立通信连接,该通信连接可以为近场通信连接,其中,近场通信包括蓝牙、无线保真(Wireless Fidelity,Wi-Fi)、近距离无线通信(Near Field Communication,NFC)等。
通过第一设备与任一第二设备建立的通信连接,第一设备可基于点对点的方式中的控制链路,来向任一第二设备发送上述相关请求(如关闭请求以及打开请求),以使任一第二设备打开或关闭摄像头。并且,任一第二设备可以基于点对点的方式中的数据链路,来向第一设备发送由摄像头采集到的图像数据(如视频流)。可以理解的是,该数据链路还可以用于传输其余数据,如文本数据、音频数据等。
对于上述第一设备与任一第二设备之间的数据链路,可在该数据链路上预先创建不同类型的会话,来传输不同类型的数据。例如,会话A为video类型,用于传输视频流;会话B为bytes类型,用于传输音频数据等;会话C为HTML类型,用于传输文本数据。当第一设备与任一第二设备的数据链路中不存在任何会话时,该数据链路断开。
对于上述介绍切换摄像头的情况:当平板130关闭第一摄像头时,也会关闭用于传输第一摄像头采集的图像数据的会话。在这种情况下,由于用于传输第一摄像头采集的图像数据的会话关闭,则笔记本电脑110与平板130之间的数据链路断开。因此,在平板130打开第二摄像头之前,需要重新建立笔记本电脑110与平板130之间的数据链路,然后再创建用于传输第二摄像头采集的图像数据的会话,并打开第二摄像头。由此可见,这个过程中涉及数据链路的断开和重建,会增加摄像头切换的时延。
示例性的,上述第一设备/第二设备可以是手持式设备、车载设备等,如手机(mobile phone)、平板、笔记本电脑、掌上电脑、移动互联网设备(mobile internetdevice,MID),虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线设备、无人驾驶(self driving)中的无线设备、远程手术(remote medical surgery)中的无线设备、智能电网(smart grid)中的无线设备、运输安全(transportation safety)中的无线设备、智慧城市(smart city)中的无线设备、智慧家庭(smart home)中的无线设备、蜂窝电话、无绳电话、会话启动协议(sessioninitiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、个人计算机(personal computer,PC)、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public landmobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。
上述第一设备/第二设备也可以是可穿戴设备。例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,可以和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
上述第一设备/第二设备还可以是物联网(internet of things,IoT)系统中的终端设备。
本申请提出了一种摄像头切换方法及电子设备,能够在跨设备调用摄像头时,降低摄像头切换的时延。
其中,本申请提出的方法可应用于跨设备调用摄像头的切换场景。下面对跨设备调用摄像头时,摄像头的切换场景进行举例介绍:
在一种示例中,参见图2A,笔记本电脑110在调用平板130的前置摄像头进行拍摄时,可显示图2A所示的界面20,界面20包括拍摄的画面(如人像)、摄像头的调用信息(如“平板130的前置摄像头调用中”)、翻转控件210、暂停控件以及断开连接控件。平板130显示如图2A所示的界面21,界面21包括摄像头的使用信息(如“前置摄像头使用中”)、设备连接信息(如“已连接到笔记本110”)、暂停控件以及断开连接控件。笔记本电脑110可接收用户对翻转控件210的点击操作,将笔记本电脑110调用的平板130的摄像头由前置摄像头切换为后置摄像头。例如,切换完成之后,笔记本电脑110显示图2A所示的界面22,界面22包括拍摄的画面(如小狗)、摄像头的调用信息(如“平板130的后置摄像头调用中”)、翻转控件210、暂停控件以及断开连接控件。平板130显示如图2A所示的界面23,界面21包括摄像头的使用信息(如“后置摄像头使用中”)、设备连接信息(如“已连接到笔记本110”)、暂停控件以及断开连接控件。
在另一种示例中,参见图2A,笔记本电脑110在调用平板130的前置摄像头进行拍摄时,用户可在笔记本电脑110查看笔记本电脑110可选的摄像头列表。例如,笔记本电脑在切换前,显示如图2B所示的界面24,界面24包括可选摄像头列表,可选摄像头列表包括笔记本电脑110的前置摄像头、笔记本电脑110的后置摄像头、手机120的前置摄像头、手机120的后置摄像头、平板130的前置摄像头、平板130的后置摄像头的选择控件220。平板130的前置摄像头的选择控件还用于提示用户平板130的前置摄像头在调用中。用户可点击平板130的后置摄像头的选择控件220,从而将笔记本电脑110调用的摄像头切换为平板130的后置摄像头。在切换完成后,笔记本电脑110可显示如图2B所示的界面25,界面25中仍包括上述各个摄像头的选择控件,且平板130的后置摄像头的选择控件220用于提示用户平板130的后置摄像头在调用中。在该示例中,平板130显示的界面21和界面23可参照图2A对应的描述。
可以理解的是,除了上述两种示例,用户还可以通过其余方式触发跨设备切换摄像头的场景,本申请对此均不作限定。
并且,本申请跨设备调用摄像头可应用于视频会议、视频教学、插入图片等。例如,本申请可在使用远程会议应用、直播应用、远程教学应用等时可跨设备调用摄像头。
其中,本申请提出的电子设备包括第一设备和第二设备,第一设备和第二设备的关系可参见上述图1中的描述,本申请提出的方法可应用于图1中的通信系统。下面对第一设备/第二设备的硬件架构和软件架构进行介绍:
参见图3,为本申请实施例提供的一种电子设备(如第一设备/第二设备)的硬件结构图。如图3所示,以电子设备是手机为例,其可以包括:处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,USB)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identificationmodule,SIM)卡接口395等。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
充电管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块340为电池342充电的同时,还可以通过电源管理模块341为电子设备供电。
电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,外部存储器,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
电子设备通过GPU,显示屏394,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过ISP,摄像头393,视频编解码器,GPU,显示屏394以及应用处理器等实现拍摄功能。
在一些实施例中,电子设备作为第二设备时,其可以基于第一设备的请求来调用摄像头393拍摄图像并返回给第一设备。
外部存储器接口320可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备可以通过音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏394不同区域的触摸操作,马达391也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口395用于连接SIM卡。SIM卡可以通过插入SIM卡接口395,或从SIM卡接口395拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口395可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
本申请实施例中,电子设备(如第一设备/第二设备)的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本文中,以分层架构的系统为例,示例性说明第一设备和第二设备的软件结构。
参见图4A,为本申请实施例提供的第一设备的软件架构图。参见图4B,为本申请实施例提供的第二设备的软件架构图。如图4A和图4B所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口进行数据的传输与通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,硬件抽象层(hardware abstract layer,HAL),以及内核层。
①.应用程序层可以包括一系列应用程序包。如图4A所示,第一设备的应用程序层包括三方应用以及摄像头业务服务。如图4B所示,第二设备的应用程序层包括摄像头业务服务。
其中,三方应用是指可以调用可信任设备的摄像头的应用,例如,三方应用包括但不限于远程会议应用、直播应用、远程教学应用等。摄像头业务服务用于提供跨设备调用摄像头的相关能力,例如,可信任设备的发现、使能、启动/结束摄像头服务、更新摄像头的服务状态(如无服务状态/有服务状态)等。在本申请中,第一设备的摄像头业务服务用于接收第一设备的摄像头管理服务发送的相关指令,从而通知第二设备的摄像头业务服务来管理第二设备提供的摄像头服务。
②.应用程序框架层为应用开发者提供了用以访问核心功能的应用编程接口(application programming interface,API)框架及各种服务和管理工具。第一设备和第二设备的应用程序框架层均包括摄像头管理服务,该摄像头管理服务可为虚拟化平台(distributedmobile sensing development platform,DMSDP),用于提供虚拟(如跨设备调用)摄像头能力,包括:关闭/启动摄像头,创建或关闭用于承载摄像头采集的图像数据的会话。在本申请中,第一设备的摄像头管理服务用于向第一设备的摄像头业务服务发送相关指令,从而通知第二设备的摄像头业务服务来管理第二设备提供的摄像头服务;且第一设备的摄像头管理服务用于管理第一设备与第二设备之间的相关会话。第二设备的摄像头管理服务用于接收第二设备的摄像头业务服务发送的相关指令,从而关闭/打开摄像头,以及关闭会话。
③.硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,能够为操作系统提供虚拟硬件平台。第一设备的硬件抽象层包括通信硬件抽象、显示硬件抽象;第二设备的硬件抽象层包括通信硬件抽象、显示硬件抽象以及摄像头硬件抽象。
通信硬件抽象用于实现跨设备间的数据传输,设备的自发现等。示例性的,通过通信硬件抽象,第一设备可以发现位于近场的第二设备,与第二设备建立数据链路以及控制链路。然后可以在数据链路传输图像数据,控制链路传输相关请求。
显示硬件抽象用于实现设备的显示功能,以及控制显示区域等。示例的,第一设备通过显示硬件抽象可显示接收到图像数据对应的画面,并显示摄像头的调度信息。
摄像头硬件抽象用于响应于摄像头管理服务,控制摄像头启动/关闭。
④.内核层是硬件和软件之间的层。第一设备和第二设备的内核层均可以包括显示驱动和通信驱动等,通信驱动包括但不限于于蓝牙驱动、Wi-Fi驱动等等。第二设备的内核层还可以包括摄像头驱动。这些各个驱动用于响应于硬件抽象层中对应的硬件抽象的指令,从而实现相应的功能。如第二设备中的摄像头驱动用于响应于摄像头硬件抽象层,控制摄像头启动/关闭。
可以理解的是,上述软件架构仅为举例,在具体实现时,第一设备/第二设备在上述各层中还可以包括更多功能模块,本申请对此不赘述。
本申请实施例提供的摄像头切换方法,可以在由具有上述软硬件结构的第一设备和第二设备构成的通信系统中完成,下面将进一步结合附图,来详细说明本申请实施例提供的图像拍摄方法。
参见图5,本申请实施例提供的摄像头切换方法包括S501~S513,其中S501~S505为跨设备调用摄像头时,摄像头切换之前执行的步骤;S506~S513为摄像头切换时执行的步骤。下面先介绍摄像头切换之前执行的步骤:
S501、第一设备获取打开第一摄像头的操作。
在本申请实施例中,第一设备与第二设备之间建立通信连接,第一摄像头为第二设备的一个摄像头。示例地,第一设备为图1中的笔记本电脑110,第二设备为平板130,平板130包括前置摄像头以及后置摄像头,则第一摄像头为平板130的前置摄像头或后置摄像头。
可选的,第一设备可在运行目标应用时,获取到用户打开第一摄像头的操作。其中,第一摄像头可以为上一次跨设备调用第二设备时,调用过的摄像头。或者,第一摄像头为用户本次跨设备调用摄像头时手动选择的摄像头。例如,目标应用为远程会议应用、直播应用、远程教学应用等三方应用中的任一种。以目标应用为远程会议应用为例,当用户在使用远程会议应用接入会议时,可以选择是否启动摄像头。若用户选择启动摄像头,且用户未指定启动哪一个摄像头,则第一设备可调用上一次跨设备调用的摄像头,这个上一次跨设备对应的设备也即是第二设备,上一次跨设备调用的摄像头也即是第一摄像头。若用户选择启动摄像头之后,第一设备显示可选摄像头列表(可选摄像头列表可参照图2B中的界面25),用户向可选摄像头列表中第二设备的一个摄像头发起选择操作,则用户选定的第二设备的一个摄像头为第一摄像头。
可选的,在第一设备获取到打开第一摄像头的操作之前,第一设备需要确定第二设备为支持远程调用摄像头、且可以利用近场通信传输图像数据的可用设备。
其中,第一设备可以通过接收设备同步信息,确定第二设备可支持远程调用摄像头并进行记录。该设备同步信息可在第一设备与第二设备预先建立连接时发送。或者,第二设备与第一设备中登录相同的用户账号,则第二设备可以向第一设备同步其具有远程调用摄像头的能力。
同时,第一设备在第一设备获取到打开第一摄像头的操作之前,第一设备需要扫描已记录的支持远程调用摄像头的第二设备是否在近场通信范围内,以判断第一设备与第二设备是否能进行近场通信。若第一设备与第二设备均打开蓝牙,或第一设备与第二设备连接至同一Wi-Fi等,则可确定第一设备与第二设备能够进行近场通信,相应地,第二设备为本次跨设备调用摄像头的可用设备(或称为在线设备)。需要说明的是,第一设备可在确定第二设备为本次跨设备调用摄像头的可用设备时,才在接收到打开第一摄像头的操作时,将其展示在可用摄像头列表或者确定第一摄像头为上一次跨设备调用的第二设备的一个摄像头。
S502、第一设备与第二设备建立第一会话,第一会话承载于第一链路。
其中,第一链路是在第一设备与第二设备之间建立的数据链路,该数据链路可以为P2P链路,第一设备可确定第二设备为支持远程调用摄像头、且可以利用近场通信传输图像数据的可用设备之后,与第一设备建立好第一链路。
第一会话用于传输第一摄像头采集的图像数据,如第一视频流。在本申请中,第一设备可向第二设备发送协商消息,相应地,第二设备接收该协商消息,与第一设备建立第一会话。该协商消息包括设备标识,会话的服务类型,以及会话的服务参数。其中,设备标识用于指示在第一会话中,第一设备的对端设备,服务类型用于指示第一会话用于传输的数据的类型(包括video类型、bytes类型等),服务参数包括第一会话的保活时长(或称为持续时长)等。示例地,设备标识为第二设备的标识、服务类型为video类型,服务参数包括的第一会话的保活时长不设置,或设置为video类型的会话可允许存活的最大值等,用于保证第一视频流的可靠传输。
S503、第一设备向第二设备发送第一摄像头的打开请求。
相应地,第二设备可接收到第一摄像头的打开请求。
在本申请中,第一设备可在与第二设备建立第一会话的过程中,向第二设备发送第一摄像头的打开请求。也即是说,第一设备可同时执行上述S502与S503。第一摄像头的打开请求中包括第一设备的标识以及第一摄像头的标识,且第一摄像头的打开请求是在第一设备与第二设备的控制链路上发送的,该控制链路与第一链路不为同一条链路。
S504、第二设备响应于第一摄像头的打开请求,启动第一摄像头。
第二设备在接收到第一摄像头的打开请求之后,可启动第一摄像头。
可选的,第二设备在接收到第一摄像头的打开请求之后,可以先获取用户授权,在获取到用户授权之后,再启动第一摄像头。
S505、第二设备向第一设备发送由第一摄像头采集的第一视频流,第一视频流在第一会话中传输。
在第一会话成功创建以及第一摄像头成功启动之后,第二设备的第一摄像头开始采集第一视频流,并将采集到的第一视频流经由第一会话发送至第一设备。相应地,第一设备可接收到第一视频流,并根据第一视频流进行显示。
可选的,第二设备可显示摄像头使用的提示界面,例如,第二设备显示如图2A或如图2B中的界面21,用于提示用户第二设备正在使用第二摄像头(如前置摄像头)进行拍摄。
其中,上述S501~S505为跨设备调用摄像头时,摄像头切换前第一设备与第二设备执行的步骤。下面介绍本申请中摄像头切换过程中执行的步骤:
S506、第一设备显示第一控件,第一控件用于将第一设备调用的摄像头切换成第二设备的第二摄像头。
在一种可能的实现方式中,第一控件包括摄像头翻转控件,摄像头翻转控件用于在第一摄像头和第二摄像头之间实现翻转切换。例如,摄像头翻转控件为图2A中的控件210。
在另一种可能的实现方式中,第一控件包括第二摄像头的选项控件(或称为选择控件)。例如,第二摄像头的选项控件为图2B中的控件220。
可选的,第一设备在运行目标应用时,可先显示目标应用的主界面,在接收到对目标应用的主界面的操作之后,显示目标应用中第一控件所在的界面。例如,参见图6,目标应用为远程会议应用,第一设备显示如图6所示的界面60,界面60包括文档显示区域、功能区域以及视频区域610(为通过第一摄像头采集的画面)、视频区域620,功能区域包括摄像头管理的控件630、麦克风管理的控件以及文档分享的控件。其中,第一设备可在接收到对视频区域610的点击操作之后,显示界面20,界面20包括摄像头翻转控件210;或者,第一设备可在接收到对摄像头管理的控件630的操作之后,显示界面24,界面24包括可选摄像头列表,可选摄像头列表包括平板130的后置摄像头的选择控件220。
S507、第一设备获取对第一控件的操作。
S508、第一设备与第二设备建立第二会话,第二会话承载于第一链路且用于保活第一链路。
在第一设备获取到用户对第一控件的操作之后,第一设备与第二设备建立第二会话;在建立第二会话时,第一设备仍可向第二设备发送第二会话对应的协商消息,相应地,第二设备接收该协商消息,与第一设备建立第二会话。该协商消息包括设备标识,会话的服务类型,以及会话的服务参数。其中,设备标识用于指示在第二会话中第一设备的对端设备,服务类型用于指示第二会话用于传输的数据的类型(包括video类型、bytes类型等),服务参数包括第二会话的保活时长(或称为持续时长)等。
可选的,第二会话的服务类型与第一会话的服务类型不同;第二会话的服务类型所需的传输资源小于第一会话的服务类型所需的传输资源。示例地,在第二会话对应的协商消息中可设置第二会话的服务类型为bytes类型,bytes类型的会话需占据的带宽远小于video类型的会话需占据的带宽。基于此,可减少传输资源的消耗。
可选的,第二会话的保活时长不设置,或设置为video类型的会话可允许存活的最大值,或者第二会话的保活时长设置为经验值,该经验值用于确保第一链路在第一会话关闭之后,且新的video类型的会话成功创建之前,第一链路能够保活(即第一链路不断开)。第二会话的保活时长设置为经验值的情况会在后续进行详细介绍。
S509、第一设备向第二设备发送第一关闭请求,第一关闭请求用于指示第二设备关闭第一会话以及关闭第一摄像头。
在本申请实施例中,第一设备获取到用户对第一控件的操作之后,可响应于对第一控件的操作,同时执行上述S502与S503,即第一设备在与第二设备建立第二会话时,向第二设备发送第一关闭请求。相应地,第二设备可接收到第一关闭请求。
S510、第二设备关闭第一会话以及关闭第一摄像头。
第二设备在接收到第一关闭请求之后,关闭第一会话以及关闭第一摄像头。其中,关闭第一会话的进程与关闭第一摄像头的进程可不同,因此第二设备可同时执行关闭第一会话与关闭第一摄像头。
S511、第一设备与第二设备建立第三会话并发送第一打开请求,第三会话承载于第一链路,第一打开请求用于指示第二设备启动第二摄像头。
在第二设备成功关闭第一会话之后,第一设备可与第二设备建立第三会话并发送第一打开请求;第三会话用于传输第二摄像头采集的第二视频流。相应地,第二设备接收到第一打开请求。
其中,在建立第三会话时,第一设备仍可向第二设备发送第三会话对应的协商消息,相应地,第三设备接收该协商消息,与第一设备建立第三会话。该协商消息包括设备标识,会话的服务类型,以及会话的服务参数。其中,设备标识用于指示在第三会话中第一设备的对端设备,服务类型用于指示第三会话用于传输的数据的类型(包括video类型、bytes类型等),服务参数包括第二会话的保活时长(或称为持续时长)等。示例地,设备标识为第三设备的标识、服务类型为video类型,服务参数包括的第三会话的保活时长不设置,或设置为video类型的会话可允许存活的最大值等,用于保证第二视频流的可靠传输。
可选的,在执行上述S508设置第二会话的保活时长为经验值时,该经验值大于或等于第二会话成功建立的时刻至第三会话成功建立的时刻之间的时间间隔。例如,第二会话成功建立的时刻为t1,第三会话成功建立的时刻为t2。由上述内容介绍可知,在t1~t2的时间段中,第一链路上的第一会话断开,因此若在第一会话断开至第三会话成功建立的时间段内,第一链路中不存在第二会话,则第一链路会断开,第一设备需要在与第二设备建立第三会话之前,与第二设备重新建立第一链路。由此可见,当第二会话的保活时长大于或等于t1~t2的时间间隔时,第二链路不会断开,则可以有效减少链路重建的时间,从而降低摄像头切换的时延。
S512、第二设备打开第二摄像头。
第二设备可在确认第一摄像头成功关闭之后,打开第二摄像头。第二设备如何确认第一摄像头成功关闭,可参照下述图7对应的实施例。
S513、第二设备向第一设备发送由第二摄像头采集的第二视频流,第二视频流在第一会话中传输。
在第三会话成功创建以及第二摄像头成功启动之后,第二设备的第二摄像头开始采集第二视频流,并将采集到的第二视频流经由第三会话发送至第一设备。相应地,第一设备可接收到第二视频流,并根据第二视频流进行显示。
可选的,第二设备可显示摄像头使用的提示界面,例如,第二设备显示如图2A或如图2B中的界面23,用于提示用户第二设备正在使用第二摄像头(如后置摄像头)进行拍摄。
在本实施例中,针对第一设备将调用的摄像头从第二设备的第一摄像头切换至第二摄像头的场景,可在向第二设备发送第一关闭请求之前,在第一设备与第二设备之间创建第二会话来保活第一链路。基于此,即便第二设备在关闭第一摄像头以及断开与第一设备的第一会话之后,第一链路也不会断开,相应地,也就无需在第二设备打开第二摄像头以及创建第三会话之前,来创建一个新的链路承载第三会话。由此可见,本申请可通过省略第一链路的断开与重建步骤,来降低摄像头切换的时延。
前文图5说明了本申请实施例提供的摄像头切换方法的流程,下面将结合图4A和图4B中的软件模块,进一步说明本申请实施例提供的摄像头切换方法。其中,主要以应用程序层和应用程序框架层的交互进行介绍,不赘述应用程序层和应用程序框架对硬件抽象层和内核层的调用过程。
参见图7,图7是本申请实施例提供的一种摄像头切换方法中的软件交互的流程示意图。其中,S701~S709为跨设备调用摄像头时,摄像头切换之前执行的步骤;S709的后续步骤为摄像头切换时执行的步骤。下面先介绍S701~S709:
S701、第一设备的三方应用获取打开第一摄像头的操作。
其中,S701的实现方式可参照S501中的相应描述。
S702、第一设备的三方应用向第一设备的摄像头管理服务发送第一摄像头的打开请求。
相应地,第一设备的摄像头管理服务接收到第一摄像头的打开请求。
S703、第一设备的摄像头管理服务与第二设备的摄像头管理服务建立第一会话。
在第一设备的摄像头管理服务接收到第一摄像头的打开请求之后,第一设备的摄像头管理服务可以向第二设备的摄像头管理服务发送协商消息,以建立第一会话。示例地,该协商消息可以包含下述内容:
open P2P session1 Dv Service{
std:string DeviceID//设备标识
Dv ServiceType//会话的服务类型
std:<string,string>//会话的服务参数
}
示例地,设备标识为第二设备的标识、服务类型为video类型,服务参数包括的第一会话的保活时长不设置,或设置为video类型的会话可允许存活的最大值等,用于保证第一视频流的可靠传输。S703的具体实现方式可以参照S502的相应描述,此处不赘述。
S704、第一设备的摄像头管理服务向第一设备的摄像头业务服务发送第一摄像头的打开请求。
在第一设备的摄像头管理服务接收到第一摄像头的打开请求之后,第一设备的摄像头管理服务向第一设备的摄像头业务服务转发第一摄像头的打开请求。可以理解的是,第一设备的摄像头管理服务可以同时执行S703与S704。相应地,第一设备的摄像头业务服务接收第一摄像头的打开请求。
S705、第一设备的摄像头业务服务向第二设备的摄像头业务服务发送第一摄像头的打开请求。
在第一设备的摄像头业务服务接收到第一摄像头的打开请求之后,可通过第一设备与第二设备之间的控制链路将其发送至第二设备的摄像头业务服务。
可选的,第一设备的摄像头业务服务中记录有第一摄像头的服务状态。第一设备摄像头业务服务在接收到第一摄像头的打开请求时,可将第一摄像头的服务状态由无服务状态更新为有服务状态。
S706、第二设备的摄像头业务服务向第二设备的摄像头管理服务发送第一摄像头的打开指令。
其中,第二设备的摄像头业务服务在接收到第一摄像头的打开请求之后,可向第二设备的摄像头管理服务发送第一摄像头的打开指令,该打开指令可以为Stream On指令,用于指示启动第一摄像头。
可选的,第二设备的摄像头业务服务还可以先获取用户授权,在获取到用户授权之后,再向第二设备的摄像头管理服务发送第一摄像头的打开指令。
可选的,第二设备的摄像头业务服务中记录有第一摄像头的服务状态,第二设备的摄像头业务服务可将第一摄像头的服务状态由无服务状态更新为有服务状态。
S707、第二设备的摄像头管理服务启动第一摄像头。
第二设备的摄像头管理服务在接收到第一摄像头的打开指令后,可启动第一摄像头。
S708、第二设备的摄像头管理服务向第一设备的摄像头管理服务发送第一视频流。
在第一摄像头成功启动之后,第一摄像头采集第一视频流。第二设备的摄像头管理服务可通过第一会话,向第一设备的摄像头管理服务发送第一视频流。相应地,第一设备的摄像头管理服务接收到第一视频流。
S709、第一设备的摄像头管理服务向第一设备的三方应用发送第一视频流。
第一设备的摄像头管理服务接收到第一视频流后,可将其发送至第一设备的三方应用进行显示。
下面介绍S709及其后续步骤:
S710、第一设备的三方应用显示第一控件。
S711、第一设备的三方应用获取对第一控件的操作。
S710的实现方式可参照S506中的相应描述,S711的实现方式可参照S507中的相应描述。
S712、第一设备的三方应用向第一设备的摄像头管理服务发送第一关闭请求。
其中,第一设备的三方应用响应于对第一控件的操作,发送第一关闭请求至第一设备的摄像头管理服务;该第一关闭请求用于指示关闭第一摄像头以及关闭第一会话。
相应地,第一设备的摄像头管理服务接收到第一关闭请求。第一设备的摄像头管理服务在接收到第一关闭请求之后,可同时执行S713以及S714。
S713、第一设备的摄像头管理服务与第二设备的摄像头管理服务建立第二会话。
在第一设备的摄像头管理服务接收到第一关闭请求之后,第一设备的摄像头管理服务可以向第二设备的摄像头管理服务发送第二会话对应的协商消息,以建立第二会话。示例地,在第二会话对应的协商消息中可设置第二会话的服务类型为bytes类型,bytes类型的会话需占据的带宽远小于video类型的会话需占据的带宽。且第二会话的保活时长为经验值,该经验值可取值5s,用于在第二会话成功建立后,保活第一链路5s。
S714、第一设备的摄像头管理服务向第一设备的摄像头业务服务发送第一关闭请求。
相应地,第一设备的摄像头业务服务接收到第一关闭请求。
S715、第一设备的摄像头业务服务向第二设备的摄像头业务服务发送第一关闭请求。
在第一设备的摄像头业务服务接收到第一关闭请求之后,可通过第一设备与第二设备之间的控制链路将其发送至第二设备的摄像头业务服务。相应地,第二设备的摄像头业务服务接收到第一关闭请求。
可选的,第一设备的摄像头业务服务中记录有第一摄像头的服务状态。第一设备摄像头业务服务在接收到第一关闭请求时,可将第一摄像头的服务状态由有服务状态更新为无服务状态。
S716、第二设备的摄像头业务服务将第一摄像头的服务状态由有服务状态更新为无服务状态。
S717、第二设备的摄像头业务服务向第二设备的摄像头管理服务发送第一指令。
其中,第一指令为Tear down指令,用于指示关闭第一摄像头以及第一会话。
S718、第二设备的摄像头管理服务检测是否接收到第一指令。
在本申请中,当第二设备的摄像头管理服务与第一设备的摄像头管理服务建立第二会话之后,第二设备的摄像头管理服务会持续判断是否接收到由第二设备的摄像头业务服务发送的第一指令。如果接收到第一指令,则第二设备执行S719-1-1以及S719-1-2;如果未接收到第一指令,则第二设备执行S719-2-1、S719-2-2、S719-2-3、S719-2-4。
可选的,第二设备的摄像头管理服务还检测是否结束到会话异常结束的指令。如果接收到会话异常结束的指令,则可以关闭第一摄像头以及第一会话,从而确保通信安全。
S719-1-1、第二设备的摄像头管理服务若接收到第一指令,则关闭第一摄像头。
S719-1-2、第二设备的摄像头管理服务若接收到第一指令,则关闭第一会话。
可选的,关闭第一摄像头的进程与关闭第一会话的进程不相同,因此第二设备的摄像头管理服务在接收到第一指令时,可同时执行S719-1-1以及S719-1-2。
S719-2-1、第二设备的摄像头管理服务若未接收到第一指令,则向第二设备的摄像头业务服务查询第一摄像头的服务状态。
S719-2-2、第二设备的摄像头业务服务向发送第二设备的摄像头管理服务第一摄像头的服务状态。
第二设备的摄像头业务服务可将S716中更新的第一摄像头的服务状态(即无服务状态)发送至第二设备的摄像头管理服务。
S719-2-3、若第一摄像头的服务状态为无服务状态,则第二设备的摄像头管理服务关闭第一摄像头。
S719-2-4、若第一摄像头的服务状态为无服务状态,则第二设备的摄像头管理服务与第一设备的摄像头管理服务关闭第一会话。
可选的,在第一摄像头的服务状态为无服务状态时,可同时执行S719-2-3以及S719-2-4。
可选的,若第一摄像头的服务状态为有服务状态,则说明第二设备的摄像头业务服务未执行S716,相当于第二设备的摄像头业务服务可能因传输异常等问题未接收到第一关闭请求。在这种情况下,第二设备的摄像头管理服务维持第一会话以及维持第一摄像头启动。基于此,可使得,第一摄像头以及第一会话,与第一摄像头的服务状态保持一致。
S720、第一设备的三方应用向第一设备的摄像头管理服务发送第一打开请求。
其中,第一打开请求用于指示打开第二摄像头。相应地,第一设备的摄像头管理服务接收到第一打开请求。第一设备的摄像头管理服务在接收到第一关闭请求之后,可同时执行S721以及S722。
S721、第一设备的摄像头管理服务与第二设备的摄像头管理服务建立第三会话。
在第一设备的摄像头管理服务接收到第一打开请求之后,第一设备的摄像头管理服务可以向第二设备的摄像头管理服务发送第三会话对应的协商消息,以建立第三会话。示例地,设备标识为第二设备的标识、服务类型为video类型,服务参数包括的第三会话的保活时长不设置,或设置为video类型的会话可允许存活的最大值等,用于保证第二视频流的可靠传输。
S722、第一设备的摄像头管理服务向第一设备的摄像头业务服务发送第一打开请求。
相应地,第一设备的摄像头业务服务接收到第一打开请求。
S723、第一设备的摄像头业务服务向第二设备的摄像头业务服务发送第一打开请求。
在第一设备的摄像头业务服务接收到第一打开请求之后,可通过第一设备与第二设备之间的控制链路将其发送至第二设备的摄像头业务服务。相应地,第二设备的摄像头业务服务接收到第一打开请求。
可选的,第一设备的摄像头业务服务中记录有第二摄像头的服务状态。第一设备摄像头业务服务在接收到第一打开请求时,可将第二摄像头的服务状态由无服务状态更新为有服务状态。
S724、第二设备的摄像头业务服务向第二设备的摄像头管理服务发送第二指令。
在第二设备的摄像头业务服务接收到第一打开请求之后,可向第二设备的摄像头管理服务发送第二指令。其中,第二指令为Stream On指令,用于指示打开第二摄像头。相应地,第二设备的摄像头管理服务接收到第二指令。
可选的,第二设备的摄像头业务服务还将第二摄像头的服务状态由无服务状态更新为有服务状态。
S725、第二设备的摄像头管理服务查询第一摄像头的工作状态和第二摄像头的工作状态。
其中,第二设备的摄像头管理服务记录有第一摄像头的工作状态和第二摄像头的工作状态。该工作状态为启动状态(open态)或关闭状态(close态)。由于第二设备的摄像头管理服务在执行关闭第一摄像头时需要一定时间,因此在第二设备的摄像头管理服务接收到第二指令之后,可先查询第一摄像头的工作状态和第二摄像头的工作状态,然后执行S726-1,后者执行S726-2。
S726-1、若第一摄像头的工作状态为启动状态且第二摄像头的工作状态为关闭状态,则第二设备的摄像头管理服务关闭第一摄像头后启动第二摄像头。
S726-2、若第一摄像头的工作状态为关闭状态且第二摄像头的工作状态为关闭状态,则第二设备的摄像头管理服务启动第二摄像头。
S727、第二设备的摄像头管理服务向第一设备的摄像头管理服务发送第二视频流。
在第二摄像头成功启动以及第三会话成功创建之后,第二摄像头采集第二视频流。第二设备的摄像头管理服务可通过第三会话,向第一设备的摄像头管理服务发送第二视频流。相应地,第一设备的摄像头管理服务接收到第二视频流。
S728、第一设备的摄像头管理服务向第一设备的三方应用发送第二视频流。
第一设备的摄像头管理服务接收到第二视频流后,可将其发送至第一设备的三方应用进行显示,从而达到从第一摄像头切换至第二摄像头的效果。
需要说明是,若第二会话的保活时间设置为经验值,该经验值大于或等于第二会话成功建立的时刻至第三会话成功建立的时刻之间的时间间隔。则第二会话在保活时间达到时,自动关闭。例如,该经验值等于第二会话成功建立的时刻至第三会话成功建立的时刻之间的时间间隔且第三会话建立过程中未出现异常,则理想情况下,第二会话在第三会话成功建立时自动关闭。
在本实施例中,针对第一设备将调用的摄像头从第二设备的第一摄像头切换至第二摄像头的场景,可在向第二设备发送第一关闭请求之前,在第一设备与第二设备之间创建第二会话来保活第一链路。基于此,可通过省略第一链路的断开与重建步骤,来降低摄像头切换的时延。同时在第二设备关闭第一摄像头时,通过第一指令以及第一摄像头的服务状态决定是否需要关闭第一摄像头,有利于保证第一摄像头的工作状态与第一摄像头的服务状态一致。并且,在第二设备打开第二摄像头时,通过查询两个摄像头的工作状态,可以确保打开第二摄像头时不会出现错误或异常,从而提高摄像头切换的准确性。
本申请实施例还提供了一种电子设备,该电子设备可以包括:一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述方法实施例中第一设备/第二设备执行的各个功能或者步骤。
本申请实施例还提供了一种摄像头切换装置,该摄像头切换装置包括用于执行上述实施例中第一设备/第二设备中的功能/单元。
本申请实施例还提供一种芯片系统,如图8所示,该芯片系统800包括至少一个处理器801和至少一个接口电路802。处理器801和接口电路802可通过线路互联。例如,接口电路802可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路802可用于向其它装置(例如处理器801)发送信号。示例性的,接口电路802可读取存储器中存储的指令,并将该指令发送给处理器801。当所述指令被处理器801执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中手机执行的各个功能或者步骤。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述方法实施例中手机执行的各个功能或者步骤。
其中,本实施例提供的电子设备、通信系统、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。

Claims (14)

1.一种摄像头切换方法,其特征在于,应用于第一设备,所述方法包括:
在所述第一设备接收由第二设备的第一摄像头采集的第一视频流的情况下,显示第一控件;所述第一设备与所述第二设备建立第一链路;所述第一视频流经由承载于所述第一链路中的第一会话传输;所述第一控件用于将所述第一设备调用的摄像头切换成所述第二设备的第二摄像头;
响应于用户对所述第一控件的操作,与所述第二设备建立第二会话;所述第二会话承载于所述第一链路上,且用于保活所述第一链路;
向所述第二设备发送第一关闭请求;所述第一关闭请求用于指示所述第二设备关闭所述第一会话以及关闭所述第一摄像头;
在所述第一会话成功关闭后,与所述第二设备建立第三会话,并向所述第二设备发送第一打开请求;所述第一打开请求用于指示所述第二设备启动所述第二摄像头;所述第三会话承载于所述第一链路上;
接收第二视频流;所述第二视频流经由所述第二设备的所述第二摄像头采集,并经由所述第三会话传输至所述第一设备。
2.根据权利要求1所述的方法,其特征在于,所述第二会话的保活时长大于或等于所述第二会话成功建立的时刻至所述第三会话成功建立的时刻之间的时间间隔。
3.根据权利要求1或2所述的方法,其特征在于,所述第二设备是在所述第一设备的近场通信范围内和/或与所述第一设备中登录相同的用户账号的设备。
4.根据权利要求1或2所述的方法,其特征在于,所述第一控件包括摄像头翻转控件,所述摄像头翻转控件用于在所述第一摄像头和所述第二摄像头之间实现翻转切换;或者,所述第一控件包括所述第二摄像头的选项控件。
5.一种摄像头切换方法,其特征在于,应用于第二设备,所述方法包括:
在向第一设备发送由所述第二设备的第一摄像头采集的第一视频流的情况下,与所述第一设备建立第二会话;所述第一设备与所述第二设备建立第一链路;所述第一视频流经由承载于所述第一链路中的第一会话传输;所述第二会话承载于所述第一链路上,且用于保活所述第一链路;
接收所述第一设备发送的第一关闭请求,响应于所述第一关闭请求,关闭所述第一会话以及所述第一摄像头;
在所述第一会话成功关闭后,与所述第二设备建立第三会话;
接收所述第一设备发送的第一打开请求,响应于所述第一打开请求,启动第二摄像头;
向所述第一设备发送第二视频流;所述第二视频流经由所述第二摄像头采集,并经由所述第三会话传输至所述第一设备。
6.根据权利要求5所述的方法,其特征在于,所述第二会话的保活时长大于或等于所述第二会话成功建立的时刻至所述第三会话成功建立的时刻之间的时间间隔。
7.根据权利要求5或6所述的方法,其特征在于,所述第一设备包括摄像头管理服务,所述第二设备包括摄像头业务服务以及摄像头管理服务;
所述与所述第一设备建立第二会话,包括:
所述第二设备的摄像头管理服务与所述第一设备的摄像头管理服务建立第二会话;
所述关闭所述第一会话以及所述第一摄像头,包括:
在所述第二设备的摄像头管理服务与所述第一设备的摄像头管理服务建立第二会话之后,所述第二设备的摄像头管理服务检测是否接收到第一指令;所述第一指令用于指示关闭所述第一会话以及所述第一摄像头;
若所述第二设备的摄像头管理服务接收到所述第一指令,则所述第二设备的摄像头管理服务关闭所述第一会话以及所述第一摄像头;
或者,若所述第二设备的摄像头管理服务未接收到所述第一指令,则所述第二设备的摄像头管理服务向所述摄像头业务服务查询所述第一摄像头的服务状态;若所述第一摄像头的服务状态为无服务状态,则所述第二设备的摄像头管理服务关闭所述第一会话以及所述第一摄像头。
8.根据权利要求7所述的方法,其特征在于,在所述关闭所述第一会话以及所述第一摄像头之前,所述方法还包括:
响应于所述第一设备发送的第一关闭请求,所述第二设备的摄像头业务服务将所述第一摄像头的服务状态由服务状态更新为无服务状态;
所述第二设备的摄像头业务服务向所述第二设备的摄像头管理服务发送所述第一指令。
9.根据权利要求7所述的方法,其特征在于,所述响应于所述第一设备发送的第一打开请求,启动第二摄像头,包括:
响应于所述第一设备发送的第一打开请求,所述第二设备的摄像头业务服务向所述第二设备的摄像头管理服务发送第二指令;所述第二指令用于指示启动第二摄像头;
所述第二设备的摄像头管理服务响应于所述第二指令,查询所述第一摄像头的工作状态和所述第二摄像头的工作状态;
若所述第一摄像头的工作状态为启动状态且所述第二摄像头的工作状态为关闭状态,则关闭所述第一摄像头,并在所述第一摄像头成功关闭之后,启动所述第二摄像头;
或者,若所述第一摄像头的工作状态为关闭状态且所述第二摄像头的工作状态为关闭状态,则启动所述第二摄像头。
10.根据权利要求5所述的方法,其特征在于,所述第二设备是在所述第一设备的近场通信范围内和/或与所述第一设备中登录相同的用户账号的设备。
11.一种电子设备,其特征在于,包括:一个或多个处理器,一个或多个存储器;其中,一个或多个存储器与一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器在执行所述计算机指令时,使得所述电子设备执行如权利要求1-4或权利要求5-10中任一项所述的方法。
12.一种通信系统,其特征在于,所述通信系统包括权利要求1-10中所述的第一设备和第二设备。
13.一种芯片系统,应用于电子设备,其特征在于,所述芯片系统包括至少一个处理器以及接口,所述接口用于接收计算机指令,并传输至所述至少一个处理器;所述至少一个处理器运行所述计算机指令使得所述电子设备执行如权利要求1-4或权利要求5-10中任意一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-4或权利要求5-10中任一项所述的方法。
CN202311267256.4A 2023-09-26 2023-09-26 摄像头切换方法及电子设备 Pending CN118450249A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311267256.4A CN118450249A (zh) 2023-09-26 2023-09-26 摄像头切换方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311267256.4A CN118450249A (zh) 2023-09-26 2023-09-26 摄像头切换方法及电子设备

Publications (1)

Publication Number Publication Date
CN118450249A true CN118450249A (zh) 2024-08-06

Family

ID=92307870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311267256.4A Pending CN118450249A (zh) 2023-09-26 2023-09-26 摄像头切换方法及电子设备

Country Status (1)

Country Link
CN (1) CN118450249A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251158A1 (en) * 2009-03-30 2010-09-30 Avaya Inc. System and method for graphically managing communication sessions
CN102347855A (zh) * 2011-07-21 2012-02-08 福建星网锐捷网络有限公司 双向转发检测实现方法、装置及网络设备
CN112073664A (zh) * 2019-06-11 2020-12-11 聚好看科技股份有限公司 一种视频通话方法和显示设备
CN114915747A (zh) * 2021-02-09 2022-08-16 华为技术有限公司 视频通话的方法与相关设备
CN116346884A (zh) * 2023-03-29 2023-06-27 青岛海尔智能家电科技有限公司 用于会话链路保活的方法、装置、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251158A1 (en) * 2009-03-30 2010-09-30 Avaya Inc. System and method for graphically managing communication sessions
CN102347855A (zh) * 2011-07-21 2012-02-08 福建星网锐捷网络有限公司 双向转发检测实现方法、装置及网络设备
CN112073664A (zh) * 2019-06-11 2020-12-11 聚好看科技股份有限公司 一种视频通话方法和显示设备
CN114915747A (zh) * 2021-02-09 2022-08-16 华为技术有限公司 视频通话的方法与相关设备
CN116346884A (zh) * 2023-03-29 2023-06-27 青岛海尔智能家电科技有限公司 用于会话链路保活的方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
JP6669151B2 (ja) データ処理装置、データ処理方法及びプログラム
EP4084486B1 (en) Cross-device content projection method, and electronic device
CN105847317B (zh) 数据处理装置、数据处理系统、数据处理方法及存储介质
WO2022257977A1 (zh) 电子设备的投屏方法和电子设备
WO2021027666A1 (zh) 一种蓝牙回连的方法及相关装置
US20220239718A1 (en) Communication Protocol Switching Method, Apparatus, and System
JP6311078B2 (ja) 端末テスト方法、装置、プログラム及び記録媒体
US11687332B2 (en) Communication apparatus for wirelessly communicating with another apparatus, information processing method, and program
CN114461240B (zh) 软件升级方法、软件升级系统及电子设备
CN109194972B (zh) 直播流获取方法、装置、计算机设备及存储介质
JP2017531974A (ja) ネットワーク接続方法、機器、システム、プログラム及び記録媒体
EP4199562A1 (en) Method for transmitting data and electronic device
CN115514882A (zh) 一种分布式拍摄方法,电子设备及介质
CN113703849B (zh) 投屏应用打开方法和装置
CN105578017B (zh) 拍照及照片分享系统及方法
JP2016103703A (ja) 情報処理装置、電子機器およびそれらの制御方法、プログラム並びに記憶媒体
CN118450249A (zh) 摄像头切换方法及电子设备
KR20180105676A (ko) 서비스 연결의 설정 방법, 장치, 프로그램 및 저장매체
KR102113550B1 (ko) 전자 장치의 기능 및 리소스 운용 방법
CN115242994A (zh) 视频通话系统、方法和装置
CN113271577B (zh) 媒体数据播放系统、方法及相关装置
JP2020091787A (ja) 通信装置およびその制御方法
WO2023236939A1 (zh) 应用组件交互方法及相关设备
CN113259370B (zh) 数据传输方法、装置、设备、系统及可读存储介质
WO2024001812A1 (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