一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

传输数据的方法、电子设备及可读存储介质与流程

2022-09-02 21:38:38 来源:中国专利 TAG:


1.本技术涉及终端技术领域,特别涉及一种传输数据的方法、电子设备及可读存储介质。


背景技术:

2.随着终端技术的快速发展,多屏协同技术得到广泛的应用。多屏协同是指在第一电子设备(如手机)与第二电子设备(如平板电脑)建立连接的基础上,第二电子设备的显示窗口内镜像显示第一电子设备的画面,用户可以在该显示窗口内进行操作以使得第一电子设备执行相应的功能,譬如,在该显示窗口内触发第一电子设备中的即时通讯软件,以使第一电子设备发起视频通话。
3.在多屏协同的场景下,当进行视频通话时,第一电子设备除了可以使用自身配置的相机采集视频帧之外,还可以切换至通过第二电子设备的相机采集视频帧。这一切流过程中,第一电子设备通常需要通过硬件抽象层的虚拟相机进程实现。
4.然而,针对不同类型的芯片平台,硬件抽象层的虚拟相机进程的实现差异较大,所以在不同类型的芯片平台上需要进行大规模的逻辑转换,以进行代码适配,导致开发成本较高。


技术实现要素:

5.本技术提供了一种传输数据的方法、电子设备及可读存储介质,可以解决相关技术中针对不同类型的芯片平台,虚拟相机进程需要做大规模的逻辑转换导致开发成本较高的问题。
6.所述技术方案如下:
7.第一方面,提供了一种传输数据的方法,应用于第一电子设备,所述第一电子设备与第二电子设备连接,所述方法包括:
8.在视频通话的过程中,若满足使用所述第二电子设备的相机的切换条件,则通过虚拟相机进程根据第一应用的第一指令,按照虚拟相机适配进程定义的第一数据格式对所述第一指令进行转换,所述虚拟相机适配进程用于对所述虚拟相机进程与互联服务进程之间传输的数据进行转换;
9.控制所述虚拟相机进程将转换后的所述第一指令发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述第一指令发送给所述互联服务进程,所述互联服务进程用于接收并缓存第二电子设备发送的视频流;
10.控制所述互联服务进程基于所述视频流执行所述第一指令对应的操作。
11.如此,虚拟相机进程不需要关注上层逻辑,只需要将数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据上层需求进行转换处理后发送给互联服务进程。如此,避免需要做大量的代码适配工作,从而可以减小开发成本。
12.作为本技术的一个示例,所述控制所述虚拟相机进程将转换后的第一指令发送给所述虚拟相机适配进程,包括:
13.控制所述虚拟相机进程获取第一服务句柄;
14.控制所述虚拟相机进程基于所述第一服务句柄,获取对应的第一服务,所述第一服务支持所述第一数据格式;
15.控制所述虚拟相机进程通过所述第一服务,将转换后的所述第一指令发送给所述虚拟相机适配进程。
16.如此,通过获取虚拟相机适配进程的第一服务,将转换后的第一指令发送给虚拟相机适配进程,第一电子设备只需要将第一指令转换成第一服务支持的第一数据格式即可,避免需要进行大量的逻辑转换。
17.作为本技术的一个示例,所述虚拟相机进程通过所述虚拟相机适配进程将所述第一指令发送给所述互联服务进程,包括:
18.控制所述虚拟相机适配进程将转换后的所述第一指令再次进行转换处理,以得到所述互联服务进程能够处理的指令;
19.控制所述虚拟相机适配进程通过第一回调函数,将所述互联服务进程能够处理的指令发送给所述互联服务进程。
20.如此,由虚拟相机适配进程做格式转换,可以避免需要虚拟相机进程进行大量的代码适配,也即,虚拟相机进程不需要关注上层逻辑,从而可以减小开发成本。
21.作为本技术的一个示例,所述控制所述互联服务进程基于所述视频流执行所述第一指令对应的操作之后,还包括:
22.控制所述互联服务进程对响应数据按照所述虚拟相机适配进程定义的第二数据格式进行转换,所述响应数据是执行所述第一指令对应的操作后产生的;
23.控制所述互联服务进程将转换后的所述响应数据发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述响应数据传输给所述虚拟相机进程。
24.对于互联服务进程,不需要关注底层逻辑,只需要将响应数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据下层需求进行转换处理后发送给虚拟相机进程。如此,避免需要做大量的代码适配工作,从而可以减小开发成本。
25.作为本技术的一个示例,所述控制所述互联服务进程将转换后的响应数据发送给所述虚拟相机适配进程,包括:
26.控制所述互联服务进程获取第二服务句柄;
27.控制所述互联服务进程基于所述第二服务句柄,获取对应的第二服务,所述第二服务支持所述第二数据格式;
28.控制所述互联服务进程通过所述第二服务,将转换后的所述响应数据发送给所述虚拟相机适配进程。
29.如此,通过获取虚拟相机适配进程的第二服务,将转换后的响应数据发送给虚拟相机适配进程,第一电子设备只需要将响应数据转换成第二服务支持的第二数据格式即可,避免需要进行大量的逻辑转换。
30.作为本技术的一个示例,所述互联服务进程通过所述虚拟相机适配进程将所述响
应数据传输给所述虚拟相机进程,包括:
31.控制所述虚拟相机适配进程将转换后的所述响应数据再次进行转换处理,以得到所述虚拟相机进程能够处理的数据;
32.控制所述虚拟相机适配进程通过第二回调函数,将所述虚拟相机进程能够处理的数据发送给所述虚拟相机进程。
33.如此,由虚拟相机适配进程做格式转换,互联服务进程无需关心底层芯片特性,从而可以减小开发成本。
34.作为本技术的一个示例,所述方法还包括:
35.当所述相机进程接收到所述第一应用的打开相机指令时,控制所述相机进程执行打开相机的操作;
36.在打开相机成功的情况下,控制所述相机进程向所述虚拟相机进程发送打开相机通知;
37.控制所述虚拟相机进程与所述相机进程建立绑定关系;
38.控制所述虚拟相机进程请求与所述虚拟相机适配进程建立用于传输数据的绑定关系,其中,所述虚拟相机适配进程在所述第一电子设备开机后启动。
39.如此,在打开相机后,控制虚拟相机进程与虚拟相机适配进程建立绑定关系,以便于为后续在相机虚拟化业务场景中这两个进程之间的交互建立基础。
40.作为本技术的一个示例,所述控制所述虚拟相机进程请求与所述虚拟相机适配进程建立用于传输数据的绑定关系,包括:
41.控制所述虚拟相机进程请求获取所述虚拟相机适配进程的第一服务句柄,所述第一服务句柄对应的第一服务用于所述虚拟相机进程向所述虚拟相机适配进程传输数据;
42.控制所述虚拟相机进程在所述虚拟相机适配进程中注册第二回调函数,所述第二回调函数用于所述虚拟相机适配进程向所述虚拟相机进程传输数据。
43.如此,通过获取第一服务句柄和回调,建立绑定关系,以便于后续可以使用第一服务和第二回调函数进行数据交互。
44.作为本技术的一个示例,所述当所述相机进程接收到所述第一应用的打开相机指令时,控制所述相机进程执行打开相机的操作之后,还包括:
45.在打开相机成功的情况下,控制所述互联服务进程请求获取所述虚拟相机适配进程的第二服务句柄,所述第二服务句柄对应的第二服务用于所述互联服务进程向所述虚拟相机适配进程传输数据;
46.控制所述互联服务进程在所述虚拟相机适配进程中注册第一回调函数,所述第一回调函数用于所述虚拟相机适配进程向所述互联服务进程传输数据。
47.如此,通过获取第二服务句柄和回调,建立绑定关系,以便于后续可以使用第二服务和第一回调函数进行数据交互。
48.作为本技术的一个示例,所述方法还包括:
49.控制所述虚拟相机适配进程向所述互联服务进程发送绑定成功通知,所述绑定成功通知用于指示所述虚拟相机适配进程分别与虚拟相机进程和所述互联服务进程均已完成绑定;
50.控制所述互联服务进程开始接收所述视频流。
51.如此,在上下层间用于传输数据的通道建立完成后,说明可以进行数据传输,所以,可以控制互联服务进程开始接收第二电子设备的视频流,从而实现视频流的切换,保证视频流能够成功传输。
52.作为本技术的一个示例,所述方法还包括:
53.当所述虚拟相机适配进程监听到所述虚拟相机进程存在异常时,控制所述虚拟相机适配进程解除与所述虚拟相机进程之间的绑定关系;和/或,
54.当所述虚拟相机进程监听到所述虚拟相机适配进程存在异常时,控制所述虚拟相机进程解除与所述虚拟相机适配进程之间的绑定关系。
55.如此,各个进程各自控制自身的生命周期和异常处理,如此避免一个进程异常导致影响另一个进程。
56.第二方面,提供了一种传输数据的装置,所述传输数据的装置的结构中包括处理器和存储器,所述存储器用于存储支持传输数据的装置执行上述第一方面所提供的传输数据的方法的程序,以及存储用于实现上述第一方面所述的传输数据的方法所涉及的数据。所述传输数据的装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。所述处理器被配置为:
57.在视频通话的过程中,若满足使用所述第二电子设备的相机的切换条件,则通过虚拟相机进程根据第一应用的第一指令,按照虚拟相机适配进程定义的第一数据格式对所述第一指令进行转换,所述虚拟相机适配进程用于对所述虚拟相机进程与互联服务进程之间传输的数据进行转换;
58.控制所述虚拟相机进程将转换后的所述第一指令发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述第一指令发送给所述互联服务进程,所述互联服务进程用于接收并缓存第二电子设备发送的视频流;
59.控制所述互联服务进程基于所述视频流执行所述第一指令对应的操作。
60.作为本技术的一个示例,所述处理器被配置为:
61.控制所述虚拟相机进程获取第一服务句柄;
62.控制所述虚拟相机进程基于所述第一服务句柄,获取对应的第一服务,所述第一服务支持所述第一数据格式;
63.控制所述虚拟相机进程通过所述第一服务,将转换后的所述第一指令发送给所述虚拟相机适配进程。
64.作为本技术的一个示例,所述处理器被配置为:
65.控制所述虚拟相机适配进程将转换后的所述第一指令再次进行转换处理,以得到所述互联服务进程能够处理的指令;
66.控制所述虚拟相机适配进程通过第一回调函数,将所述互联服务进程能够处理的指令发送给所述互联服务进程。
67.作为本技术的一个示例,所述处理器还被配置为:
68.控制所述互联服务进程对响应数据按照所述虚拟相机适配进程定义的第二数据格式进行转换,所述响应数据是执行所述第一指令对应的操作后产生的;
69.控制所述互联服务进程将转换后的所述响应数据发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述响应数据传输给所述虚拟相机进程。
70.作为本技术的一个示例,所述处理器被配置为:
71.控制所述互联服务进程获取第二服务句柄;
72.控制所述互联服务进程基于所述第二服务句柄,获取对应的第二服务,所述第二服务支持所述第二数据格式;
73.控制所述互联服务进程通过所述第二服务,将转换后的所述响应数据发送给所述虚拟相机适配进程。
74.作为本技术的一个示例,所述处理器被配置为:
75.控制所述虚拟相机适配进程将转换后的所述响应数据再次进行转换处理,以得到所述虚拟相机进程能够处理的数据;
76.控制所述虚拟相机适配进程通过第二回调函数,将所述虚拟相机进程能够处理的数据发送给所述虚拟相机进程。
77.作为本技术的一个示例,所述处理器还被配置为:
78.当所述相机进程接收到所述第一应用的打开相机指令时,控制所述相机进程执行打开相机的操作;
79.在打开相机成功的情况下,控制所述相机进程向所述虚拟相机进程发送打开相机通知;
80.控制所述虚拟相机进程与所述相机进程建立绑定关系;
81.控制所述虚拟相机进程请求与所述虚拟相机适配进程建立用于传输数据的绑定关系,其中,所述虚拟相机适配进程在所述第一电子设备开机后启动。
82.作为本技术的一个示例,所述处理器被配置为:
83.控制所述虚拟相机进程请求获取所述虚拟相机适配进程的第一服务句柄,所述第一服务句柄对应的第一服务用于所述虚拟相机进程向所述虚拟相机适配进程传输数据;
84.控制所述虚拟相机进程在所述虚拟相机适配进程中注册第二回调函数,所述第二回调函数用于所述虚拟相机适配进程向所述虚拟相机进程传输数据。
85.作为本技术的一个示例,所述处理器还被配置为:
86.在打开相机成功的情况下,控制所述互联服务进程请求获取所述虚拟相机适配进程的第二服务句柄,所述第二服务句柄对应的第二服务用于所述互联服务进程向所述虚拟相机适配进程传输数据;
87.控制所述互联服务进程在所述虚拟相机适配进程中注册第一回调函数,所述第一回调函数用于所述虚拟相机适配进程向所述互联服务进程传输数据。
88.作为本技术的一个示例,所述处理器还被配置为:
89.控制所述虚拟相机适配进程向所述互联服务进程发送绑定成功通知,所述绑定成功通知用于指示所述虚拟相机适配进程分别与虚拟相机进程和所述互联服务进程均已完成绑定;
90.控制所述互联服务进程开始接收所述视频流。
91.作为本技术的一个示例,所述处理器还被配置为:
92.当所述虚拟相机适配进程监听到所述虚拟相机进程存在异常时,控制所述虚拟相机适配进程解除与所述虚拟相机进程之间的绑定关系;和/或,
93.当所述虚拟相机进程监听到所述虚拟相机适配进程存在异常时,控制所述虚拟相
机进程解除与所述虚拟相机适配进程之间的绑定关系。
94.第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
95.第四五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
96.上述第二方面、第三方面和第四方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
97.图1是根据一示例性实施例示出的一种电子设备中的模块示意图;
98.图2是根据另一示例性实施例示出的一种电子设备中的模块示意图;
99.图3是根据一示例性实施例示出的一种协同场景下的界面示意图;
100.图4是根据一示例性实施例示出的一种电子设备的结构示意图;
101.图5是根据一示例性实施例示出的一种电子设备的软件架构示意图;
102.图6是根据一示例性实施例示出的一种平板电脑的界面示意图;
103.图7是根据一示例性实施例示出的一种手机的界面示意图;
104.图8是根据另一示例性实施例示出的一种平板电脑的界面示意图;
105.图9是根据另一示例性实施例示出的一种手机的界面示意图;
106.图10是根据一示例性实施例示出的一种平板电脑的示意图;
107.图11是根据一示例性实施例示出的一种协同场景下的界面示意图;
108.图12是根据另一示例性实施例示出的一种协同场景下的界面示意图;
109.图13是根据一示例性实施例示出的一种上下层间的通道的建立方法流程示意图;
110.图14是根据一示例性实施例示出的一种虚拟相机进程与虚拟相机适配进程建立绑定关系的示意图;
111.图15是根据一示例性实施例示出的一种虚拟相机适配进程的初始化示意图;
112.图16是根据一示例性实施例示出的一种互联服务进程与虚拟相机适配进程建立绑定关系的示意图;
113.图17是根据另一示例性实施例示出的一种上下层间的通道的建立方法流程示意图;
114.图18是根据一示例性实施例示出的一种传输数据的方法流程示意图;
115.图19是根据一示例性实施例示出的一种虚拟相机进程与互联服务进程之间传输数据的示意图;
116.图20是根据一示例性实施例示出的一种异常处理流程的示意图;
117.图21是根据另一示例性实施例示出的一种传输数据的方法流程示意图;
118.图22是根据一示例性实施例示出的一种传输数据的装置的结构示意图。
具体实施方式
119.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术的实施方式作进一步地详细描述。
120.应当理解的是,本技术提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,比如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
121.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
122.在一种可能的家居场景中,第一用户在第一房间通过手机与第二用户进行视频通话,在此过程中,若第二用户想要看第三用户在做些什么,如果第三用户在第二房间内,需要第一用户手持手机从第一房间移动到第二房间,然后始终将镜头对着第三用户。如此以来,第一用户与第二用户在视频通话中聊天可能会影响到第三用户做事。
123.在一种可能的会议场景中,第一员工通过手机与其他地区分公司的第二员工进行视频通话,在此过程中,当第一员工想要向第二员工分享某个板报的内容时,需要第一员工手持手机并始终将镜头对准板报,如此,使得用户体验较差。
124.随着多屏协同技术的推广,在手机与平板电脑建立多屏协同连接的情况下,手机在视频通话过程中可以借助平板电脑的摄像头来采集视频帧,以避免需要用户手持手机并始终将镜头对着目标进行拍摄。
125.在多屏协同的场景下,可以将手机在视频通话中通过平板电脑采集视频流称为相机虚拟化业务。目前,相机虚拟化业务的实现一般由协同服务进程和硬件抽象层的多个模块协作完成,请参考图1中的(a)图,该多个模块至少包括相机模块和虚拟相机模块。在相机虚拟化业务开启后,协同服务进程用于接收并缓存平板电脑的相机采集的视频流,虚拟相机模块用于从协同服务进程获取平板电脑的相机采集的视频流,并利用该视频流替换掉相机模块从手机的相机获取的视频流,相机模块将替换后的视频流反馈给应用层。然而,由于相机模块和虚拟相机模块运行于同一个进程中,彼此有耦合依赖,所以,如果虚拟相机模块异常中断,就会引起相机模块出现异常。
126.为此,在一些实施例中,将相机模块和虚拟相机模块进行解耦,譬如请参考图1中的(b)图所示,将上述两个模块的功能分别通过单独的进程来执行,该两个进程分别是相机进程和虚拟相机进程,该两个进程之间通过虚拟相机接口层建立通信连接。其中,相机进程用于执行相机模块的功能,虚拟相机进程用于执行虚拟相机模块的功能,如此,将两个模块进行解耦,可以避免因虚拟相机模块异常中断引起相机模块异常的问题。
127.然而,在不同芯片平台上,由于硬件抽象层的虚拟相机进程实现差异较大,所以通常需要做大量的适配代码。譬如请参考图2中的(a)图,底层芯片包括第一相机接口对应的第一类型芯片和第二相机接口对应的第二类型芯片,根据底层芯片的具体方案,通常需要
在底层芯片上增加中间服务模块、顶层转换接口,以针对不同类型的芯片平台分别做代码适配,分别适配不同芯片平台的方案兼容性差、可扩展性差。为此,本技术实施例提供了一种方法,譬如请参考图2中的(b)图,该方法中增加了芯片适配层模块,芯片适配层模块独立于底层芯片,用于打通上下层间的通道。芯片适配层模块对上层提供顶层转换接口,对下层提供底层转换接口,且包括转换器,转换器用于对上下层传输的数据进行转换处理。如此,使得上层与下层之间的数据由芯片适配层模块进行转换处理,也即是,上层无需关注底层芯片的特性,只需要将待转发数据转换成顶层转换接口支持的数据格式。另外,对于底层也无需关注上层逻辑,无论是针对第一相机接口对应的第一类型芯片,还是针对第二相机接口对应的第二类型芯片,或者是针对其他相机接口对应的其他类型芯片,虚拟相机进程只需将待转发数据转换成底层转换接口支持的数据格式。如此,避免需要针对不同芯片平台做大量代码适配的问题,其具体实现可以参见下文。
128.在对本技术实施例提供的方法进行详细介绍之前,先对本技术实施例涉及的执行主体进行介绍。本技术实施例提供的方法可以由电子设备执行。该电子设备支持视频通话功能,譬如电子设备安装有即时通讯软件,通过即时通讯软件可以实现视频通话。电子设备配置有一个或者多个摄像头,在视频通话过程中可以通过配置的摄像头采集视频帧。在一个实施例中,在电子设备包括的摄像头的数量是多个的情况下,多个摄像头可以包括前置摄像头和后置摄像头,前置摄像头的数量可以是一个或者多个,后置摄像头的数量也可以是一个或者多个。另外,电子设备具有多屏协同能力,能够与其他电子设备建立多屏协同的关系。作为示例而非限定,该电子设备可以包括但不限于手机、平板电脑、笔记本电脑、智能手表。在一个示例中,请参考图3,以电子设备是手机、其他电子设备是平板电脑为例,手机与平板电脑建立多屏协同的关系后,手机可以将显示画面投屏至平板电脑上,在视频通话过程中,手机可以通过平板电脑的摄像头采集视频流,并将视频流发送给与手机进行视频通话的对端设备。
129.图4是本技术实施例提供的一种电子设备的结构示意图。参见图4,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理进程140,电源管理进程141,电池142,天线1,天线2,移动通信进程150,无线通信进程160,音频进程170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器进程180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识进程(subscriber identification module,sim)卡接口195等。其中,传感器进程180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
130.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
131.处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码
器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
132.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
133.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
134.在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识进程(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
135.电子设备100的无线通信功能可以通过天线1,天线2,移动通信进程150,无线通信进程160,调制解调处理器以及基带处理器等实现。
136.天线1和天线2用于发射和接收电磁波信号。
137.移动通信进程150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信进程150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信进程150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信进程150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
138.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。
139.无线通信进程160可以提供应用在电子设备100上的包括无线局域网(wireless local 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经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信进程160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
140.在一些实施例中,电子设备100的天线1和移动通信进程150耦合,天线2和无线通信进程160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图5所示,应用程序框架层可以包括服务发现进程、协同助手进程、互联服务进程。
153.其中,服务发现进程用于在蓝牙或nfc开启后监听用于指示进行多屏协同的连接指令,并在监听到该连接指令后通知协同助手进程。协同助手进程用于在接收到服务发现进程的通知后,通过与其他电子设备中的协同助手进程之间相互交换信息建立协同连接。
154.作为本技术的一个示例,在视频通话的过程中,如果是在多屏协同场景下,互联服务进程用于接收并缓存协同电子设备发送的视频流,并根据底层的请求为底层提供相应的相机服务。
155.在一个示例中,互联服务进程中包括数据处理模块、传输通道模块、流量控制模块和能力采集模块。数据处理模块可以用于根据底层的需求对视频帧进行处理,譬如进行格式转换等处理;传输通道模块用于对传输通道进行配置;流量控制模块用于缓存视频流;能力采集模块用于采集本端电子设备和协同电子设备的相机能力,以便于根据采集的相机能力,将本端电子设备的相机(或称摄像头)与协同电子设备的相机进行匹配。譬如,在根据收集的相机能力确定本端电子设备和协同电子设备均包括前置摄像头和后置摄像头的情况下,将本端电子设备的前置摄像头与协同电子设备的前置摄像头对应,以及将本端电子设备的后置摄像头与协同电子设备的后置摄像头对应。
156.作为本技术的一个示例,系统层包括虚拟相机适配进程、多媒体平台等。譬如,请参见图2中的(b),虚拟相机适配进程包括芯片适配层模块。在一个示例中,虚拟相机适配进程在电子设备开机后启动,此时被称为是常驻进程。虚拟相机适配进程主要用于对互联服务进程与扩展层之间传输的数据进行格式转换处理,可以理解为,虚拟相机适配进程是互联服务进程与虚拟相机进程之间数据传输的桥梁。示例性地,当互联服务进程需要将数据传输给虚拟相机进程时,互联服务进程先将数据发送给虚拟相机适配进程,由虚拟相机适配进程进行格式转换,也即转换成虚拟相机进程能够识别和处理的数据格式,然后将转换后的数据发送给虚拟相机进程。反之,当虚拟相机进程需要将数据传输给互联服务进程时,虚拟相机进程先将数据发送给虚拟相机适配进程,虚拟相机适配进程对数据进行格式转换,也即转换成互联服务进程能够识别和处理的数据格式,然后将转换后的数据发送给互联服务进程。如此以来,由于虚拟相机适配进程的存在,虚拟相机进程无需关注上层逻辑,互联服务进程也无需关注底层芯片的特性。
157.在一个示例中,虚拟相机适配进程包括第一服务、第二服务和转换器。
158.第一服务用于对下提供服务,支持第一数据格式,第一数据格式可以由技术人员根据实际需求进行设置。譬如第一服务为translator服务,请参考图2中的(b)图,translator服务可以为底层转换接口。示例性地,若虚拟相机进程需要向上层的互联服务进程发送数据,则可以先将数据按照第一数据格式进行转换,然后通过translator服务将转换后的数据发送给虚拟相机适配进程,以通过虚拟相机适配进程发送给互联服务进程。
159.第二服务用于对上提供服务,支持第二数据格式,第二数据格式可以由技术人员根据实际需求进行设置。譬如,第二服务为channel服务,请参考图2中的(b)图,channel服务可以为顶层转换接口。示例性地,若互联服务进程需要向底层的虚拟相机进程发送数据,则可以先将数据按照第二数据格式进行转换,然后通过channel服务将转换后的数据发送给虚拟相机适配进程,以通过虚拟相机适配进程发送给虚拟相机进程。
160.转换器用于对数据进行格式转换。譬如,将底层的数据转换成上层能够识别和处理的数据格式,或者,将上层的数据转换成底层能够识别和处理的数据格式。
161.作为本技术的一个示例,扩展层主要包括相机进程和虚拟相机进程,相机进程和虚拟相机进程位于hal(hardware abstract layer,硬件抽象层)中。其中,相机进程用于根据应用程序层的业务需求打开本地相机,通过本地相机采集视频帧,譬如请参考图2中的(b)图,相机进程可以包括第一相机接口或第二相机接口或其他相机接口。作为示例而非限定,相机进程是在开机后启动的。在一个实施例中,在多屏协同的场景中,相机进程通过虚拟相机进程请求获取协同电子设备采集的视频流。相应的,虚拟相机进程根据相机进程的请求,从互联服务进程中获取协同电子设备采集的视频帧,并将协同电子设备采集的视频帧发送给相机进程,以替换掉本地的视频流,从而实现视频流切换。
162.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。其中,摄像头驱动用于驱动摄像头硬件,以使得摄像头启动,如此,电子设备即可通过摄像头采集图像。
163.需要说明的是,协同电子设备(例如平板电脑)的内部结构与上述电子设备(例如手机)的内部结构相同,本技术不做详细赘述。
164.为了便于理解,接下来以手机和平板电脑进行协同为例,先对多屏协同的几种可能的连接方式进行介绍。
165.1.通过蓝牙建立连接。
166.在一个实施例中,当用户想要将手机与平板电脑进行协同工作时,可以将手机和平板电脑中的蓝牙均开启。此外,在手机中,用户手动开启多屏协同的功能,譬如用户可以通过“设置
”‑“
更多连接
”‑“
多设备协同”的路径找到“多设备协同”的开关,将该开关设于开启状态,如此就开启了手机的多屏协同功能。
167.请参考图6中的(a)图,用户从平板电脑的状态栏下滑出通知面板,通知面板中包括“多屏协同”选项61。用户可以点击“多屏协同”选项61,响应于用户对“多屏协同”选项61的触发操作,平板电脑展示第一提示窗口,第一提示窗口中包括用于指示用户如何操作的第一操作提示信息。示例性地,如图6中的(b)图所示,第一操作提示信息包括“1.将您的手机蓝牙开启并靠近本机,发现本机后点击“连接”。2.连接后,您可在平板电脑上操作手机,实现设备间数据共享。”的提示内容。如此,用户可以根据第一提示窗口中的第一操作提示信息进行操作。譬如,将手机靠近平板电脑。
168.在一个示例中,在手机靠近平板电脑的过程中,当手机发现平板电脑时,手机显示第二提示窗口,譬如请参考图7中的(a)图,第二提示窗口中包括“连接”选项71和“取消”选项72。当用户点击“连接”选项71时,说明用户确认要建立连接,此时,响应于用户对“连接”选项71的触发操作,手机通过蓝牙与平板电脑建立连接。当用户点击“取消”选项72时,说明用户想要取消建立连接,此时响应于用户对“取消”选项72的触发操作,手机不执行建立连接的操作。在另一个示例中,在手机靠近平板电脑的过程中,当手机发现平板电脑时,也可以不显示第二提示窗口,而是自动通过蓝牙与平板电脑建立连接。
169.作为示例而非限定,在手机通过蓝牙与平板电脑建立连接的过程中,为了显示建立连接的进度,手机还可以显示用于指示正在连接的第三提示窗口,譬如,第三提示窗口如图7中的(b)图所示。可选地,第三提示窗口中包括有“取消”选项,以便于用户在需要的情况
下可以在建立连接的过程中取消连接。
170.2.通过扫码的方式建立连接。
171.在平板电脑端,用户可以根据“我的手机
”‑“
立即连接
”‑“
扫码连接”路径,在平板电脑上操作,响应于用户的操作,平板电脑显示用于建立连接的二维码,示例性地,显示结果如图8所示。可选地,平板电脑还可以显示用于提示用户如何操作的第二操作提示信息,譬如第二操作提示信息为“使用手机浏览器扫码连接”。
172.在手机端,可以在浏览器(或者智慧视觉)中进入包括“扫一扫”选项的界面,譬如,请参考图9中的(a)图,进入浏览器的界面,该界面中包括“扫一扫”选项91。用户可以点击“扫一扫”选项91,响应于用户对“扫一扫”选项91的触发操作,手机启动摄像头,如图9中的(b)图所示,如此用户即可将摄像头对准平板电脑端显示的二维码进行扫码操作。
173.在一个示例中,手机扫码成功后,向平板电脑发送建立连接的请求。平板电脑接收到手机的请求后,可以显示第四提示窗口,第四提示窗口中包括用于提示用户是否同意建立连接的提示信息,譬如该提示信息为“xx设备请求与本端建立连接,是否同意建立连接?”,此外,第四提示窗口中还可以包括“同意”选项和“拒绝”选项。当用户点击“同意”选项时,说明用户允许手机与平板电脑建立连接,此时响应于用户对“同意”选项的触发操作,平板电脑与手机建立连接。当用户点击“拒绝”选项时,说明用户不允许手机与平板电脑建立连接,此时响应于用户对“拒绝”选项的触发操作,平板电脑通知手机建立连接失败。
174.需要说明的是,上述仅是以在平板电脑端通过“我的手机
”‑“
立即连接
”‑“
扫码连接”路径打开二维码为例进行说明。在另一实施例中,还可以通过其他路径打开二维码。示例性地,请参考图6中的(b)图,第一提示窗口中除了包括第一操作提示信息之外,还包括第二操作提示信息,第二操作提示信息为“发现不了本机?您也可扫码连接”,其中“扫码连接”四个字设为是可触发的。用户可以点击第一提示窗口中的“扫码连接”内容。响应于用户对“扫码连接”的触发操作,平板电脑展示如图8所示的二维码的界面,如此,用户即可通过手机扫描平板电脑上的二维码,从而通过扫码的方式建立连接。
175.3.通过碰一碰的方式建立连接。
176.用户可以在手机和平板电脑中分别开启nfc和多屏协同功能。之后,用户将手机背部的nfc区域(手机背部摄像头周围)触碰键盘的nfc区域(通常位于平板电脑的右下角区域,如图10中的101所示),响应于用户的该操作,手机和平板电脑之间通过nfc建立连接。可选地,在通过nfc建立连接之前,还可以分别在平板电脑和手机上提示用户是否同意建立连接,在用户同意建立连接后,手机和平板电脑执行建立连接的操作。在一个示例中,当手机与平板电脑连接上时,手机还可以通过振动或响铃的方式对用户进行提示。
177.需要说明的是,上述几种可能的连接方式均是以通过无线方式实现为例进行说明。在另一实施例中,还可以通过有线方式进行投屏,譬如通过type-c转高清晰度多媒体接口(high definition multimedia interface,hdmi)的连接线实现投屏,本技术实施例对此不作限定。
178.手机与平板电脑连接成功后,平板电脑的显示窗口中会镜像显示手机的画面,譬如请参考图11所示。如此,用户即可根据需求在该窗口内进行操作。在一个示例中,当用户想要通过即时通讯软件进行视频通话时,可以在平板电脑的该窗口中点击即时通讯软件a的图标,以打开即时通讯软件,然后在即时通讯软件中点击“视频通话”选项。响应于用户对“视频通话”选项的触发操作,平板电脑向手机发送视频通话控制指令,手机在接收到视频通话控制指令后,发起视频通话请求,与其他用户进行视频通话。请参考图3,在此过程中,手机和平板电脑的窗口的画面同步显示。
179.在一个实施例中,请参考图12,下拉平板电脑的通知栏后,平板电脑的多屏协同通知栏中显示已协同到手机上。另外,该多屏协同通知栏中包括状态开关,用户可以根据需求调整该状态开关的开闭。譬如,若在视频通话中用户想通过平板电脑的摄像头采集画面,则可以将该状态开关调为开启状态,此时状态开关为“音视频切换到手机上”,也即在该种情况下,手机进行视频通话时的画面由平板电脑的摄像头采集得到。当然,若用户仅想使用手机自身的摄像头采集画面,则可以将该状态开关调为关闭状态,如此,手机在视频通话过程中的画面由手机的摄像头采集得到。其具体实现原理可以参见如下实施例。
180.基于上述图5提供的软件架构图,接下来对本技术实施例提供的方法流程进行详细介绍。请参考图13,图13是根据一示例性实施例示出的一种上下层间的通道建立的流程示意图,作为示例而非限定,这里以该方法应用于手机中为例进行说明,该手机通过图5中所示的多个进程的交互实现。假设手机与平板电脑之间建立协同连接。该方法可以包括如下部分或者全部内容:
181.步骤a1:手机的服务发现进程开启指令监听功能。
182.作为本技术的一个示例,当用户想要将手机与平板电脑进行多屏协同时,可以开启手机中的蓝牙和nfc,以及开启平板电脑中的蓝牙和nfc。对于手机和平板电脑中的任意一个电子设备来说,在蓝牙或者nfc开启的情况下,服务发现进程开启指令监听功能。也即手机的服务发现进程在检测到蓝牙或者nfc开启的情况下,开始执行指令监听功能。对于平板电脑亦是同理,在检测到蓝牙或者nfc开启的情况下,平板电脑的服务发现进程开始执行指令监听功能。
183.步骤a2:当手机的服务发现进程监听到连接指令时,将该连接指令发送给协同助手进程。
184.在一个示例中,当用户触发平板电脑侧的“多屏协同”选项时,平板电脑中的多屏协同向应用程序框架层的服务发现进程发送连接指令。服务发现进程监听到该连接指令后对该连接指令进行广播,如此,手机在靠近平板电脑的过程中,手机的服务发现进程即可监听到该连接指令。
185.在一个示例中,手机的服务发现进程监听到该连接指令后,将该连接指令发送给手机的协同助手进程。
186.在另一个示例中,请参考图7中的(a)图,手机的服务发现进程监听到该连接指令后,可以在手机上显示第二提示窗口,以通过第二提示窗口使得用户在手机上确认是否同意手机与平板电脑之间建立协同连接。当基于第二提示窗口接收到用户的确认指示时,说明用户同意建立协同连接,该种情况下,手机的服务发现进程将该连接指令发送给手机的协同助手进程。
187.步骤a3:手机的协同助手进程与平板电脑的协同助手进程交换设备信息。
188.示例性地,交换的设备信息可以包括但不限于设备方位信息、设备能力信息。其中,设备方位信息可以是坐标信息,用于手机和平板电脑建立数据传输通道。手机的设备能力信息可以包括相机数量、每个相机的属性以及每个相机的能力信息,相机数量是指手机
中的摄像头的数量,相机的属性可以包括前置摄像头或后置摄像头,相机的能力信息可以包括用于描述相机能够支持的分辨率、帧率等信息。同理,平板电脑的设备能力信息也可以包括平板电脑的相机数量、每个相机的属性以及每个相机的能力信息。
189.也即,手机将自身的坐标信息和设备能力信息发送给平板电脑的协同助手进程。平板电脑的协同助手进程接收到手机发送的设备信息后,将自身的坐标信息和设备能力信息发送给手机。如此,两者相互完成设备信息的交换。
190.步骤a4:手机的协同助手进程通知互联服务进程启动。
191.在一个示例中,手机的协同助手进程可以向手机的互联服务进程发送启动通知,以拉起手机的互联服务进程。
192.此外,在相互交换设备信息后,平板电脑的协同助手进程也可以向平板电脑的互联服务进程发送启动通知,以拉起平板电脑的互联服务进程。
193.步骤a5:互联服务进程进行初始化配置。
194.在实施中,手机的互联服务进程接收到启动通知后,互联服务进程开始进行初始化配置操作,以便为后续的相机虚拟化服务建立基础。
195.在一个示例中,互联服务进程的初始化配置操作包括:收集平板电脑的设备能力信息和手机的设备能力信息。如前文所述,由于手机的协同助手进程与平板电脑的协同助手进程已进行了设备信息的交换,所以,可以由手机的协同助手进程为互联服务进程提供手机和平板电脑的设备能力信息。
196.在一个示例中,互联服务进程的初始化配置操作还包括预使能音频和通话模块,以使得音频和通话模块是可使用状态,从而为视频通话的实现提供基础条件。此外,手机的互联服务进程与平板电脑的互联服务进程建立数据传输通道,该数据传输通道用于进行互联服务。
197.上述是以手机中多个进程的交互为例,对手机与平板电脑之间建立协同连接的过程进行介绍,该过程是本技术实施例的可选实施例。基于上述建立的协同连接,接下来对视频通话过程中进程间的绑定过程进行介绍。
198.步骤a6:即时通讯软件向相机进程发送相机打开指令。
199.在一个示例中,用户触发即时通讯软件中的“视频通话”选项。即时通讯软件检测到用户的该触发操作,说明用户请求进行视频通话,响应于用户对“视频通话”选项的触发操作,手机的即时通讯软件发起视频通话请求,并请求相机进程打开相机,譬如向相机进程发送相机打开指令。
200.步骤a7:相机进程控制摄像头驱动打开相机。
201.相机进程接收到相机打开指令后,控制相机驱动加载相机。示例性地,相机进程向摄像头驱动发送打开相机的指令,摄像头驱动在接收到该指令后,驱动摄像头加载,从而完成打开相机的操作。
202.步骤a8:在相机打开完成后,相机进程拉起虚拟相机进程。
203.在一个实施例中,对于相机进程来说,当发生相机打开事件时,无论请求打开相机的应用是否是即时通讯软件,相机进程都会通知虚拟相机进程启动。相应的,虚拟相机进程接收到相机进程的通知后,开始进行初始化,初始化的主要目的是与相机进程建立绑定关系,以便于后续通过该绑定关系,与相机进程进行数据交互。
204.步骤a9:虚拟相机进程与虚拟相机适配进程建立绑定关系。
205.在一个示例中,请参考图14,虚拟相机进程与虚拟相机适配进程建立绑定关系包括:在141中,虚拟相机进程向虚拟相机适配进程请求获取translator服务的服务句柄;在142中,虚拟相机进程向虚拟相机适配进程注册第二回调函数;在143中,虚拟相机进程即可获取translator服务。也即是,后续虚拟相机进程可以利用该服务句柄,获取translator服务,从而通过translator服务向虚拟相机适配进程发送数据。此外,后续虚拟相机适配进程可以通过回调的方式,利用第二回调函数将数据传输给虚拟相机进程。
206.步骤a10:在发生相机打开事件的情况下,如果状态开关处于开启状态,则协同助手进程通知互联服务进程。
207.在一个示例中,手机中存在第一监听进程,第一监听进程用于在监听到相机打开事件后,向监听列表中注册过的进程发送相机打开通知。所以,协同助手进程可以预先在该监听列表中进行注册。如此,当第一监听进程监听到相机打开事件时,会向协同助手进程发送相机打开通知,如此,协同助手进程就可以获知存在相机打开事件。
208.此时,对于协同助手进程来说,如果确定当前的状态开关处于开启状态,则确定手机要使用平板电脑的摄像头采集的视频流,为此,协同助手进程通知互联服务进程已开启相机虚拟化业务。
209.步骤a11:互联服务进程与虚拟相机适配进程建立绑定关系。
210.根据前文所述可知,虚拟相机适配进程在手机开机后就启动。在一个示例中,请参考图15,虚拟相机适配进程启动后,可以将对上的channel服务150与对下的translator服务151通过中间的cswitch实例152对象绑定,从而便于进行双向通信,也即是,虚拟相机适配进程启动后在channel服务150和translator服务151之间建立数据传输的通道。
211.对于互联服务进程来说,在确定发生相机打开事件的情况下,主动与已启动的虚拟相机适配进程建立绑定关系。在一个示例中,请参考图16,互联服务进程与虚拟相机适配进程建立绑定关系包括:在161中,互联服务进程向虚拟相机适配进程获取channel服务150的服务句柄;在162中,互联服务进程向虚拟相机适配进程注册第一回调函数;在163中,互联服务进程即可获取channel服务150。也即是,后续互联服务进程可以利用该服务句柄,获取channel服务150,从而便于通过channel服务150向虚拟相机适配进程发送数据;此外,后续虚拟相机适配进程通过回调的方式,利用第一回调函数将数据传输给互联服务进程。
212.此外,互联服务进程在接收到协同助手进程的相机打开通知后,还通过预先建立的用于互联服务的数据传输通道,向平板电脑的互联服务进程发送相机打开通知。相应的,平板电脑的互联服务进程接收到相机打开通知后,调用平板电脑的摄像头驱动打开平板电脑的相机。
213.在上下两端的绑定都建立完成后,也即在互联服务进程与虚拟相机适配进程建立绑定关系,以及虚拟相机进程与虚拟相机适配进程建立绑定关系后,虚拟相机适配进程向互联服务进程返回绑定成功通知。互联服务进程在接收到绑定成功通知后,向平板电脑的互联服务进程发送绑定成功通知。平板电脑的互联服务进程接收到绑定成功通知后,调用摄像头驱动持续获取视频流,并通过与手机的互联服务进程之间建立的用于互联服务的数据传输通道,将视频流发送给手机的互联服务进程。
214.当然,上述是以状态开关处于开启状态为例进行说明。在另一实施例中,如果状态
开关处于关闭状态,说明用户只需要使用手机的摄像头采集视频帧。该种情况下,协同助手进程在接收到相机打开通知后,不会通知互联服务进程,也即互联服务进程不与虚拟相机适配进程绑定,该种情况下,视频通话中的视频画面由相机进程从本地相机获取。
215.此外,作为本技术的一个示例,当手机在视频通话过程中使用平板电脑采集视频流时,在相机虚拟化操作完成后,可以在各层中设置状态标签,该状态标签为虚拟状态,此时意味着手机中各层传输的视频流不是手机的相机采集的,而是通过协同的平板电脑采集的。而当使用本地相机采集视频帧时,可以将该状态标签设为物理状态,此时意味着视频通话过程中使用的视频流是手机的相机采集的。
216.在本技术实施例中,在视频通话时如果需要使用平板电脑的摄像头采集的视频流,则先打通互联服务进程、虚拟相机适配进程、互联服务进程之间数据传输的通道,以实现相机虚拟化操作,从而便于视频帧能够从互联服务进程传输到扩展层的相机进程并显示出来。
217.上述实施例是以虚拟相机适配进程在开机后加载为例进行说明的。在另一个实施例中,虚拟相机适配进程还可以是在相机虚拟化业务开启后加载,譬如请参考图17,图17是根据另一示例性实施例示出的一种上下层间的通道建立的流程示意图。作为示例而非限定,这里以该方法应用于手机中为例进行说明,该手机通过图5中所示的多个进程的交互实现。假设手机与平板电脑之间建立协同连接。该方法可以包括如下部分或者全部内容:
218.步骤b1至步骤b7可以参见上述实施例中的步骤a1至步骤a7:
219.步骤b8:在发生相机打开事件的情况下,如果视频协同开关处于开启状态,则协同助手进程通知互联服务进程和虚拟相机进程。
220.作为示例而非限定,手机中存在第一监听进程,第一监听进程用于在监听到相机打开事件后,向监听列表中注册过的进程发送相机打开通知。所以,协同助手进程可以预先在该监听列表中进行注册。如此,当第一监听进程监听到相机打开事件时,会向协同助手进程发送相机打开通知,如此,协同助手进程就可以获知存在相机打开事件。
221.此时,对于协同助手进程来说,如果确定当前的视频协同开关处于开启状态,则确定已开启相机虚拟化业务,也即确定手机要采用平板电脑的本地相机采集视频流。为此,协同助手进程通知互联服务进程和虚拟相机进程。互联服务进程接收到通知后进入如下步骤b9。虚拟相机进程接收到协同助手进程的通知后进入如下步骤b12。
222.步骤b9:互联服务进程拉起虚拟相机适配进程。
223.互联服务进程接收到相机打开通知后,互联服务进程向虚拟相机适配进程发送加载通知,以使得虚拟相机适配进程开始加载。
224.此外,互联服务进程在接收到协同助手进程的相机打开通知后,还通过预先建立的用于互联服务的数据传输通道,向平板电脑的互联服务进程发送相机打开通知。相应的,平板电脑的互联服务进程接收到相机打开通知后,调用平板电脑的相机驱动打开平板电脑的相机。
225.步骤b10:虚拟相机适配进程进行初始化。
226.在一个示例中,请参考图15,虚拟相机适配进程启动后,将对上的channel服务150与对下的translator服务151通过中间的cswitch实例152对象绑定,从而便于进行双向通信,也即是,在channel服务150和translator服务151之间建立数据传输的通道。
227.步骤b11:虚拟相机适配进程初始化结束后,互联服务进程与虚拟相机适配进程建立绑定关系。
228.互联服务进程与虚拟相机适配进程建立绑定关系的具体实现可以参见图16。
229.步骤b12:虚拟相机进程更新目标状态属性为第一状态值。
230.目标状态属性用于指示是否已开启相机虚拟化业务。当目标状态属性是第一状态值时用于指示已开启相机虚拟化业务,当目标状态属性是第二状态值时用于指示未开启相机虚拟化业务。作为本技术的一个示例,目标状态属性存在于系统属性中,是一个全局属性。示例性地,第一状态值是1,第二状态值是0。
231.也即虚拟相机进程在接收到协同助手进程的通知后,将目标状态属性更新为第一状态值,以指示当前是在视频通话中已开启了相机虚拟化业务。示例性地,虚拟相机进程可以通过channel服务150修改目标状态属性的状态值。
232.步骤b13:当相机进程感知到目标状态属性为第一状态值时,拉起虚拟相机进程。
233.在一个实施例中,相机进程与虚拟相机进程之间可以通过虚拟相机接口层连接,虚拟相机接口层中包括虚拟相机业务感知模块。在相机进程打开本地相机后,可以通知虚拟相机业务感知模块开启感知功能,相应的,虚拟相机业务感知模块扫描目标状态属性的状态值。在一个示例中,虚拟相机业务功感知模块每隔周期时长阈值,扫描一次目标状态属性的状态值,譬如可以通过调用系统接口获取目标状态属性的状态值,从而实现扫描操作,该系统接口可以是propertyget接口。如此,相机进程即可通过虚拟相机业务感知模块感知到目标状态属性的状态值。其中,周期时长阈值可以根据实际需求进行设置,譬如周期时长阈值可以是100毫秒。
234.在一种情况下,若相机进程感知到目标状态属性是第一状态值,说明手机需要使用虚拟相机进程,所以,相机进程通过虚拟相机接口层向虚拟相机进程发送加载指令,以拉起虚拟相机进程。
235.在另一种情况下,若相机进程感知到目标状态属性是第二状态值,说明当前上层未触发相机虚拟化业务,也即视频协同开关处于关闭状态。具体地,在视频协同开关处于关闭状态的情况下,协同助手进程在接收到相机打开通知后,不会通知虚拟相机进程将目标状态属性更新为第一状态值,所以,此时相机进程感知到的目标状态属性是第二状态值。该种情况下,视频通话中的视频画面由相机进程从本地相机获取。
236.步骤b14:虚拟相机进程开始进行初始化。
237.虚拟相机进程接收到相机进程的加载指令后,开启执行初始化操作,初始化的主要目的是与相机进程通过虚拟相机接口层建立绑定关系。譬如,相机进程获取虚拟相机进程的服务,以与虚拟相机进程建立绑定关系。如此以便于后续通过该绑定关系,相机进程与虚拟相机进程进行数据交互。
238.步骤b15:虚拟相机进程与虚拟相机适配进程建立绑定关系。
239.也即虚拟相机进程在启动后,除了与相机进程建立绑定关系,还与虚拟相机适配进程建立绑定关系。作为本技术的一个示例,为了确定虚拟相机适配进程是否已完成初始化,可以由虚拟相机进程在启动后,开启线程扫描操作,以通过线程扫描操作扫描虚拟相机适配进程的初始化情况。如果通过线程扫描确定虚拟相机适配进程未完成初始化,则虚拟相机进程进入等待状态,一旦扫描到虚拟相机适配进程完成初始化,则虚拟相机进程主动
向虚拟相机适配进程请求建立绑定关系。
240.在一个示例中,虚拟相机进程与虚拟相机适配进程建立绑定关系的实现可以参见图14。
241.在上下两端的绑定都建立完成后,也即在互联服务进程与虚拟相机适配进程建立绑定关系,以及虚拟相机进程与虚拟相机适配进程建立绑定关系后,虚拟相机适配进程向互联服务进程返回使能成功通知,使能成功通知用于指示已建立起上下层之间的数据传输的通道。互联服务进程在接收到使能成功通知后,向平板电脑的互联服务进程发送使能成功通知。平板电脑的互联服务进程接收到使能成功通知后,调用相机驱动持续获取视频流,并通过与手机的互联服务进程之间建立的用于互联服务的数据传输通道,将视频流发送给手机的互联服务进程。相应的,手机的互联服务进程接收并缓存平板电脑发送的视频流。
242.在另一个实施例中,可能由于虚拟相机进程未扫描到虚拟相机适配进程已初始化结束等原因,使得虚拟相机进程始终未向虚拟相机适配进程发起绑定的请求。对于虚拟相机适配进程来说,如果在预设时长内未接收到虚拟相机进程的绑定请求,则会向互联服务进程返回使能失败通知。互联服务进程接收到使能失败通知后,向平板电脑的互联服务进程发送使能失败通知。平板电脑的互联服务进程接收到使能失败通知后,调用相机驱动关闭平板电脑的相机。
243.其中,上述预设时长可以根据实际需求进行设置。示例性地,预设时长可以为3秒。
244.在一个实施例中,如果在视频通话中用户将视频协同开关从开启状态调整为关闭状态,说明此时用户只需要使用手机的摄像头采集视频帧,该种情况下,手机暂不需要使用虚拟相机进程、虚拟相机适配进程和互联服务进程。此时,协同助手进程通知虚拟相机进程相机虚拟化业务已关闭。相应的,虚拟相机进程接收到该通知后,将目标状态属性从第一状态值更新为第二状态值,譬如虚拟相机进程通过channel服务150将目标状态属性的状态值更新为第二状态值。
245.在一个实施例中,如果在视频通话中用户结束视频通话,此时即时通讯应用会请求相机进程关闭相机。相机进程调用相机驱动,以通过相机驱动关闭相机。在相机关闭后,相机进程向虚拟相机进程发送相机关闭指令,相机关闭指令用于指示通过虚拟相机进程终止接收视频帧,并且,相机进程释放掉虚拟相机进程的服务,从而解除与虚拟相机进程之间的绑定关系。对于虚拟相机进程来说,在接收到相机关闭指令的情况下,将目标状态属性从第一状态值更新为第二状态值,并且,虚拟相机进程指示互联服务进程不再接收第二电子设备发送的视频流,之后,虚拟相机进程通知虚拟相机适配进程相机虚拟化业务已关闭,并且,虚拟相机进程释放掉translator服务151,从而解除与虚拟相机适配进程之间的绑定关系。对于虚拟相机适配进程来说,在接收到相机虚拟化业务已关闭的通知后,通知互联服务进程。相应的,互联服务进程释放掉虚拟相机适配进程的channel服务150,从而解除与虚拟相机适配进程之间的绑定关系。如此,虚拟相机适配进程恢复至未加载状态。
246.值得一提的是,由于虚拟相机适配进程和虚拟相机进程加载后均需要占用一定的内存空间,所以本技术实施例中只有在使用的时候才会加载这两个进程,不使用时不加载,使得在非相机虚拟化业务场景中这两个进程不会占用大量的内存,进程间解耦度较高,如此可以节省一定的内存空间。
247.在一个示例中,若虚拟相机进程关闭,但相机进程未关闭,则相机进程再次开启虚
拟相机业务感知模块,以检测相机虚拟化业务是否又被启动。
248.在本技术实施例中,在视频通话时如果需要使用平板电脑的摄像头采集的视频流,则先打通互联服务进程、虚拟相机适配进程、互联服务进程之间数据传输的通道,以实现相机虚拟化操作,从而便于视频帧能够从互联服务进程传输到扩展层的相机进程并显示出来。
249.上述各个实施例是对通道的搭建流程进行介绍,该过程只要在数据传输之前完成即可,且都是可选的实现方式。在上述实施例中的基础上,接下来对数据传输的流程进行详细介绍。请参考图18。图18是根据一示例性实施例示出的一种传输数据的方法流程示意图。作为示例而非限定,这里以该方法应用于手机中,手机通过多个进程的交互实现为例进行介绍。该方法可以包括如下内容:
250.步骤c1:虚拟相机进程按照虚拟相机适配进程定义的第一数据格式对第一指令进行转换。
251.作为本技术的一个示例,第一指令可以包括但不限于图像获取指令、配置指令、关闭指令、刷流指令。其中,图像获取指令用于请求获取视频帧,配置指令用于请求配置视频参数,譬如配置分辨率、帧率等。关闭指令用于指示关闭相机。刷流指令用于指示将已经缓存的指令冲刷掉。
252.作为本技术的一个示例,第一指令来自即时通讯软件。示例性地,第一指令是图像获取指令,譬如在手机通过即时通讯软件进行视频通话的过程中,即时通讯软件向相机进程请求获取视频帧,相机进程向虚拟相机进程发送图像获取指令。虚拟相机进程将图像获取指令按照虚拟相机适配进程定义的通用数据格式进行转换,以得到translator服务151支持的数据。
253.在一个示例中,translator服务151可以是基于安卓(android)的硬件抽象层接口定义语言(hardware abstract layer interface definition language,hidl)接口二次开发的,具有良好的兼容性和可扩展性。
254.步骤c2:虚拟相机进程将转换后的第一指令发送给虚拟相机适配进程。
255.在一个实施例中,请参考图19,虚拟相机进程获取translator服务151的服务句柄,根据该服务句柄,获取translator服务151,然后通过该translator服务151,将转换后的第一指令发送给虚拟相机适配进程。
256.在一个示例中,translator服务151定义若干种请求访问接口,虚拟相机进程可以根据第一指令的类型(譬如图像获取指令或配置指令),调用相应的请求访问接口,以将转换后的第一指令通过调用的请求访问接口发送给虚拟相机适配进程。
257.步骤c3:虚拟相机适配进程对转换后的第一指令进行转换处理。
258.在一个示例中,虚拟相机适配进程接收转换后的第一指令后,对第一指令进行格式转换或逻辑转换,以将第一指令转换成互联服务进程能够识别和处理的数据格式。
259.步骤c4:虚拟相机适配进程将转换处理后得到的第一指令发送给互联服务进程。
260.如前文所述,在绑定过程中,互联服务进程向虚拟相机适配进程注册了第一回调函数。所以,当虚拟相机适配进程需要将数据发送给互联服务进程时,可以采用回调的方式,通过第一回调函数将转换处理后得到的第一指令发送给互联服务进程。
261.步骤c5:互联服务进程执行第一指令对应的操作。
262.示例性地,假设第一指令是图像获取指令,则互联服务进程根据第一指令请求的画面,从缓存的视频流中获取与之对应的视频帧。再如,若第一指令是配置指令,则互联服务进程根据配置指令,对视频帧进行配置。
263.在执行第一指令对应的操作后,通常会产生响应数据(譬如是视频帧),通常情况下,互联服务模块需要将响应数据反馈给虚拟相机模块,所以在一个示例中,手机还执行如下操作。
264.步骤c6:互联服务进程对响应数据按照第二数据格式进行转换处理。
265.在一个示例中,响应数据是步骤c5中获取的视频帧。
266.在实施中,互联服务进程将响应数据转换成channel服务150支持的数据格式,以便于能够通过虚拟相机适配进程,将响应数据传输给虚拟相机进程。
267.在一个示例中,channel服务150可以是基于安卓的hidl接口二次开发的,具有良好的兼容性和可扩展性。
268.需要说明的是,手机的互联服务进程可能不是在执行第一指令对应的操作后,立即执行步骤c6,也就是说可能不是立即反馈响应数据,而是在相隔一定时长后,再反馈响应数据,具体可以根据实际需求进行设置。
269.步骤c7:互联服务进程将转换后的响应数据发送给虚拟相机适配进程。
270.示例性地,互联服务进程获取channel服务150的服务句柄,然后基于该服务句柄,获取channel服务150,并通过该channel服务150,将转换后的响应数据发送给虚拟相机适配进程。
271.步骤c8:虚拟相机适配进程对接收的响应数据进行转换处理。
272.虚拟相机适配进程将响应数据转换成虚拟相机进程能够识别和处理的数据格式。
273.步骤c9:将转换处理后的响应数据发送给虚拟相机进程。
274.如前文所述,在绑定过程中,虚拟相机进程向虚拟相机适配进程注册了第二回调函数,所以,虚拟相机适配进程可以通过回调的方式,利用虚拟相机进程预先注册的第二回调函数,将响应数据发送给虚拟相机进程。
275.步骤c10:虚拟相机进程对响应数据进行处理。
276.在一个示例中,以响应数据是视频帧为例,虚拟相机进程对视频帧进行格式转换处理,以得到相机进程能够处理的数据。之后,虚拟相机进程将处理后得到的数据发送给相机进程,由相机进程对数据进行填充,并将填充后的数据发送给应用层,譬如,相机进程将填充后的数据发送给应用层的即时通讯软件,从而实现视频通话业务。
277.作为示例而非限定,在视频流切换至通过平板电脑的相机采集的情况下,本地相机进程可以关闭手机的相机,譬如控制相机驱动使得相机关闭,以避免占用相机资源。进一步地,若视频流切换回手机的相机,譬如用户关闭视频协同开关,则协同助手进程可以通知本地相机进程已关闭相机虚拟业务,但若视频通话仍在进行,也即本地相机进程未接收到即时通讯应用指示关闭相机的指令,则本地相机进程再次通过相机驱动打开本地的相机,以通过本地的相机采集视频流。
278.作为本技术的一个示例,虚拟相机进程、虚拟相机适配进程、互联服务进程各自控制自身的生命周期和进行异常处理,譬如请参考图2中的(b)图,对于芯片适配层模块,其包括用于生命周期管控的模块和用于异常处理的模块。当这三者中任意一个进程出现异常
时,与其绑定的其他进程主动解除与该异常进程的绑定关系。示例性地,手机中存在第二监听进程,第二监听进程用于监听各个进程的运行状态。当第二监听进程监测到虚拟相机进程出现异常时,第二监听进程通知给与虚拟相机进程具有绑定关系的虚拟相机适配进程,如此,虚拟相机适配进程就会接收到异常通知。虚拟相机适配进程接收到异常通知后,释放掉虚拟相机进程注册的第二回调函数,以解除与虚拟相机进程之间的绑定关系。另外,虚拟相机适配进程将状态标签修改为物理状态。
279.同理,当虚拟相机适配进程出现异常时,第二监听进程会通知虚拟相机进程。虚拟相机进程主动解除与虚拟相机适配进程之间的绑定关系。再如,当虚拟相机适配进程出现异常时,互联服务进程主动解除与虚拟相机适配进程之间的绑定关系。当互联服务进程出现异常时,虚拟相机适配进程解除与该互联服务进程之间的绑定关系。
280.譬如,如图20所示,在201中,虚拟相机进程与虚拟相机适配进程建立有绑定关系,以及虚拟相机适配进程与互联服务进程建立有绑定关系。在202中,虚拟相机进程出现异常。在203中,手机通过第二监听进程通知到虚拟相机适配进程,如此,虚拟相机适配进程解除与虚拟相机进程的绑定关系,譬如释放回调以及将状态标签重置。在204中,虚拟相机适配进程出现异常。在205中,手机通过第二监听进程通知到互联服务进程,如此,互联服务进程解除与虚拟相机适配进程的绑定关系,譬如释放channel服务150,以及将状态标签重置。
281.值得一提的是,各个进程各自控制自身的生命周期和异常处理,如此避免一个进程异常导致影响另一个进程。譬如,当虚拟相机进程出现异常时,不影响虚拟相机适配进程,虚拟相机适配进程在检测到异常后,恢复初始状态。虚拟相机适配进程出现异常时不影响虚拟相机进程,出现异常时,虚拟相机进程提供的虚拟相机业务关闭,同时虚拟相机进程需要恢复到物理状态。
282.在本技术实施例中,虚拟相机进程不需要关注上层逻辑,只需要将数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据上层需求进行转换处理后发送给互联服务进程。同理,对于互联服务进程,不需要关注底层逻辑,只需要将数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据下层需求进行转换处理后发送给虚拟相机进程。如此,避免需要做大量的代码适配工作,从而可以减小开发成本。
283.另外,本技术实施例提供的方法可以适用于各种类型芯片的hal层执行相机虚拟化操作,如果新增其他类型的芯片,仅需要在hal层对虚拟相机模块的数据接口进行处理,将数据转换为虚拟相机适配进程支持的通用格式,完成translator服务的获取与回调注册即可,无需再对虚拟相机适配模块做额外的修改。
284.请参考图21,图21是根据另一示例性实施例示出的一种传输数据的方法流程示意图。作为示例而非限定,该方法应用于第一电子设备中,第一电子设备与第二电子设备连接。第一电子设备可以是上述实施例中的手机,第二电子设备可以是上述实施例中的平板电脑。该方法可以包括如下内容。
285.步骤2101:在视频通话的过程中,若满足使用第二电子设备的相机的切换条件,则通过虚拟相机进程根据第一应用的第一指令,按照虚拟相机适配进程定义的第一数据格式对第一指令进行转换,虚拟相机适配进程用于对虚拟相机进程与互联服务进程之间传输的数据进行转换。
286.第一应用能够用于视频通话。譬如第一应用是上述实施例中的即时通讯软件。
287.在一个示例中,当相机进程接收到第一应用的打开相机指令时,控制相机进程执行打开相机的操作。在打开相机成功的情况下,控制相机进程向虚拟相机进程发送打开相机通知。控制虚拟相机进程与相机进程建立绑定关系。控制虚拟相机进程请求与虚拟相机适配进程建立用于传输数据的绑定关系,其中,虚拟相机适配进程在第一电子设备开机后启动。
288.在一个示例中,控制虚拟相机进程请求与虚拟相机适配进程建立用于传输数据的绑定关系,包括:控制虚拟相机进程请求获取虚拟相机适配进程的第一服务句柄,第一服务句柄对应的第一服务用于虚拟相机进程向虚拟相机适配进程传输数据。控制虚拟相机进程在虚拟相机适配进程中注册第二回调函数,第二回调函数用于虚拟相机适配进程向虚拟相机进程传输数据。
289.在一个示例中,当相机进程接收到第一应用的打开相机指令时,控制相机进程执行打开相机的操作之后,在打开相机成功的情况下,控制互联服务进程请求获取虚拟相机适配进程的第二服务句柄,第二服务句柄对应的第二服务用于互联服务进程向虚拟相机适配进程传输数据。控制互联服务进程在虚拟相机适配进程中注册第一回调函数,第一回调函数用于虚拟相机适配进程向互联服务进程传输数据。
290.在一个示例中,控制虚拟相机适配进程向互联服务进程发送绑定成功通知,绑定成功通知用于指示虚拟相机适配进程分别与虚拟相机进程和互联服务进程均已完成绑定。控制互联服务进程开始接收视频流。
291.步骤2102:控制虚拟相机进程将转换后的第一指令发送给虚拟相机适配进程,以通过虚拟相机适配进程将第一指令发送给互联服务进程,互联服务进程用于接收并缓存第二电子设备发送的视频流。
292.在一个实施例中,控制虚拟相机进程将转换后的第一指令发送给虚拟相机适配进程包括:控制虚拟相机进程获取第一服务句柄。控制虚拟相机进程基于第一服务句柄,获取对应的第一服务,第一服务支持第一数据格式。控制虚拟相机进程通过第一服务,将转换后的第一指令发送给虚拟相机适配进程。示例性的,第一服务句柄是translator服务151的服务句柄。
293.在一个示例中,虚拟相机进程通过虚拟相机适配进程将第一指令发送给互联服务进程包括:控制虚拟相机适配进程将转换后的第一指令再次进行转换处理,以得到互联服务进程能够处理的指令。控制虚拟相机适配进程通过第一回调函数,将互联服务进程能够处理的指令发送给互联服务进程。
294.步骤2103:控制互联服务进程基于视频流执行第一指令对应的操作。
295.在一个实施例中,在步骤2103之后,控制互联服务进程对响应数据按照虚拟相机适配进程定义的第二数据格式进行转换,响应数据是执行第一指令对应的操作后产生的。控制互联服务进程将转换后的响应数据发送给虚拟相机适配进程,以通过虚拟相机适配进程将响应数据传输给虚拟相机进程。
296.在一个示例中,控制互联服务进程将转换后的响应数据发送给虚拟相机适配进程,包括:控制互联服务进程获取第二服务句柄。控制互联服务进程基于第二服务句柄,获取对应的第二服务,第二服务支持第二数据格式。控制互联服务进程通过第二服务,将转换
后的响应数据发送给虚拟相机适配进程。示例性地,第二服务句柄是channel服务150的服务句柄。
297.在一个示例中,互联服务进程通过虚拟相机适配进程将响应数据传输给虚拟相机进程,包括:控制虚拟相机适配进程将转换后的响应数据再次进行转换处理,以得到虚拟相机进程能够处理的数据。控制虚拟相机适配进程通过第二回调函数,将虚拟相机进程能够处理的数据发送给虚拟相机进程。
298.在一个示例中,当虚拟相机适配进程监听到虚拟相机进程存在异常时,控制虚拟相机适配进程解除与虚拟相机进程之间的绑定关系;和/或,当虚拟相机进程监听到虚拟相机适配进程存在异常时,控制虚拟相机进程解除与虚拟相机适配进程之间的绑定关系。
299.在本技术实施例中,虚拟相机进程不需要关注上层逻辑,只需要将数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据上层需求进行转换处理后发送给互联服务进程。如此,避免需要做大量的代码适配工作,从而可以减小开发成本。
300.图22是本技术实施例提供的一种传输数据的装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为电子设备的部分或者全部,该电子设备可以为图4所示的电子设备。参见图22,所述传输数据的装置的结构中包括处理器2210和存储器2220,所述存储器2220用于存储支持传输数据的装置执行上述各个实施例提供的方法的程序,以及存储用于实现上述各个实施例所述的方法所涉及的数据。所述传输数据的装置还可以包括通信总线2230,所述通信总线2230用于在所述处理器与所述存储器之间建立连接。所述处理器2210的数量可以是一个或者多个,所述处理器2210被配置为:
301.在视频通话的过程中,若满足使用所述第二电子设备的相机的切换条件,则通过虚拟相机进程根据第一应用的第一指令,按照虚拟相机适配进程定义的第一数据格式对所述第一指令进行转换,所述虚拟相机适配进程用于对所述虚拟相机进程与互联服务进程之间传输的数据进行转换;
302.控制所述虚拟相机进程将转换后的所述第一指令发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述第一指令发送给所述互联服务进程,所述互联服务进程用于接收并缓存第二电子设备发送的视频流;
303.控制所述互联服务进程基于所述视频流执行所述第一指令对应的操作。
304.作为本技术的一个示例,所述处理器2210被配置为:
305.控制所述虚拟相机进程获取第一服务句柄;
306.控制所述虚拟相机进程基于所述第一服务句柄,获取对应的第一服务,所述第一服务支持所述第一数据格式;
307.控制所述虚拟相机进程通过所述第一服务,将转换后的所述第一指令发送给所述虚拟相机适配进程。
308.作为本技术的一个示例,所述处理器2210被配置为:
309.控制所述虚拟相机适配进程将转换后的所述第一指令再次进行转换处理,以得到所述互联服务进程能够处理的指令;
310.控制所述虚拟相机适配进程通过第一回调函数,将所述互联服务进程能够处理的指令发送给所述互联服务进程。
311.作为本技术的一个示例,所述处理器2210还被配置为:
312.控制所述互联服务进程对响应数据按照所述虚拟相机适配进程定义的第二数据格式进行转换,所述响应数据是执行所述第一指令对应的操作后产生的;
313.控制所述互联服务进程将转换后的所述响应数据发送给所述虚拟相机适配进程,以通过所述虚拟相机适配进程将所述响应数据传输给所述虚拟相机进程。
314.作为本技术的一个示例,所述处理器2210被配置为:
315.控制所述互联服务进程获取第二服务句柄;
316.控制所述互联服务进程基于所述第二服务句柄,获取对应的第二服务,所述第二服务支持所述第二数据格式;
317.控制所述互联服务进程通过所述第二服务,将转换后的所述响应数据发送给所述虚拟相机适配进程。
318.作为本技术的一个示例,所述处理器2210被配置为:
319.控制所述虚拟相机适配进程将转换后的所述响应数据再次进行转换处理,以得到所述虚拟相机进程能够处理的数据;
320.控制所述虚拟相机适配进程通过第二回调函数,将所述虚拟相机进程能够处理的数据发送给所述虚拟相机进程。
321.作为本技术的一个示例,所述处理器2210还被配置为:
322.当所述相机进程接收到所述第一应用的打开相机指令时,控制所述相机进程执行打开相机的操作;
323.在打开相机成功的情况下,控制所述相机进程向所述虚拟相机进程发送打开相机通知;
324.控制所述虚拟相机进程与所述相机进程建立绑定关系;
325.控制所述虚拟相机进程请求与所述虚拟相机适配进程建立用于传输数据的绑定关系,其中,所述虚拟相机适配进程在所述第一电子设备开机后启动。
326.作为本技术的一个示例,所述处理器被配置为:
327.控制所述虚拟相机进程请求获取所述虚拟相机适配进程的第一服务句柄,所述第一服务句柄对应的第一服务用于所述虚拟相机进程向所述虚拟相机适配进程传输数据;
328.控制所述虚拟相机进程在所述虚拟相机适配进程中注册第二回调函数,所述第二回调函数用于所述虚拟相机适配进程向所述虚拟相机进程传输数据。
329.作为本技术的一个示例,所述处理器2210还被配置为:
330.在打开相机成功的情况下,控制所述互联服务进程请求获取所述虚拟相机适配进程的第二服务句柄,所述第二服务句柄对应的第二服务用于所述互联服务进程向所述虚拟相机适配进程传输数据;
331.控制所述互联服务进程在所述虚拟相机适配进程中注册第一回调函数,所述第一回调函数用于所述虚拟相机适配进程向所述互联服务进程传输数据。
332.作为本技术的一个示例,所述处理器还被配置为:
333.控制所述虚拟相机适配进程向所述互联服务进程发送绑定成功通知,所述绑定成功通知用于指示所述虚拟相机适配进程分别与虚拟相机进程和所述互联服务进程均已完成绑定;
334.控制所述互联服务进程开始接收所述视频流。
335.作为本技术的一个示例,所述处理器2210还被配置为:
336.当所述虚拟相机适配进程监听到所述虚拟相机进程存在异常时,控制所述虚拟相机适配进程解除与所述虚拟相机进程之间的绑定关系;和/或,
337.当所述虚拟相机进程监听到所述虚拟相机适配进程存在异常时,控制所述虚拟相机进程解除与所述虚拟相机适配进程之间的绑定关系。
338.在本技术实施例中,虚拟相机进程不需要关注上层逻辑,只需要将数据按照虚拟相机适配进程定义的通用数据格式进行转换后,交由给虚拟相机适配进程,由虚拟相机适配进程根据上层需求进行转换处理后发送给互联服务进程。如此,避免需要做大量的代码适配工作,从而可以减小开发成本。
339.需要说明的是:上述实施例提供的传输数据的装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
340.上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术实施例的保护范围。
341.上述实施例提供的传输数据的装置与传输数据的方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
342.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(digital versatile disc,dvd))或半导体介质(比如:固态硬盘(solid state disk,ssd))等。
343.以上所述为本技术提供的可选实施例,并不用以限制本技术,凡在本技术的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献