一种屏幕共享的控制方法、装置、电子设备及存储介质与流程

文档序号:30942224发布日期:2022-07-30 02:23阅读:110来源:国知局
一种屏幕共享的控制方法、装置、电子设备及存储介质与流程

1.本技术涉及屏幕显示控制技术领域,尤其是涉及一种屏幕共享的控制方法、装置、电子设备及存储介质。


背景技术:

2.随着各种智能显示终端的多样化和普及,特别是移动智能终端,笔记本,智能电视机的广泛使用,在智能移动终端之间进行高画质的实时屏幕共享的技术也逐渐成熟。可以将屏幕联动显示应用到不同的使用场景中,智能座舱的场景就是其中的代表场景之一,智能座舱作为一项车内服务,目前被越来越多的车厂提出,所谓智能座舱,指的是对汽车内部的乘坐空间进行改造,使得驾驶和乘坐体验能够更加舒适和智能化;目前市场主流智能座舱的基本配置包括双屏交互、智能语音、车联网等。
3.目前,在智能座舱实现双屏交互时,由于智能座舱设置的显示屏幕一般是运行在安卓系统之下的,而安卓系统只支持单独的渲染,即,显示界面只能在单独的显示屏上进行显示,不能够做到同一个显示界面在不同的显示屏幕上进行显示,无法满足车内多个显示屏共享的需求。因此,如何在安卓平台中实现多屏共享,成为了亟待解决的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种屏幕共享的控制方法、装置、电子设备及存储介质,能够针对安卓平台运行的显示终端,通过共享显示指令,创建共享绘制区域,将多个需要共享的安卓屏幕与共享绘制区域绑定,将获取到的图形数据绘制在共享绘制区域后得到共享图层,将共享图层同时显示在绑定的多个安卓屏幕上,在保证单个显示终端的显示屏幕正常显示的同时,还可以实现多个显示终端的显示屏幕同时显示同一画面的共享显示,提升了屏幕显示的多样性。
5.本技术主要包括以下几个方面:
6.第一方面,本技术实施例提供了一种屏幕共享的控制方法,所述屏幕为在安卓平台下运行显示的显示终端,所述控制方法包括:
7.获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;
8.若不是,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;
9.若是,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
10.进一步的,通过以下步骤得到共享图层:
11.获取视频解码器解析出的图形数据,根据所述图形数据确定所述图形数据包括的
多个目标窗口;
12.针对于每个目标窗口,获取与所述每个目标窗口对应的目标共享区域;
13.根据预设的每个目标窗口的遮掩顺序,将多个目标窗口对应的目标共享区域按照所述遮掩顺序进行叠加,得到共享图层。
14.进一步的,针对于每一个目标窗口,通过以下步骤得到对应的目标共享区域:
15.针对于每一个目标窗口,根据该目标窗口的大小和位置,在java层创建与该目标窗口对应的共享绘制区域,同时在c++层创建与该目标窗口对应的共享显示区域;
16.针对于每一个目标窗口,将该目标窗口对应的图形数据绘制在java层的共享绘制区域上;
17.针对于每一个目标窗口,将所述c++层的共享显示区域与所述java层的共享绘制区域进行二次绑定,在所述共享显示区域中获取所述共享绘制区域中的图形数据,得到与该目标窗口对应的目标共享区域。
18.进一步的,通过以下步骤将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上:
19.将共享图层提交给图形缓冲区;
20.根据屏幕刷新信号,读取所述图形缓冲区的共享图层,将读取到的所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上。
21.进一步的,通过以下步骤确定进行画面显示的目标显示区域:
22.根据所述屏幕显示指令,控制java层向c++层申请创建目标显示区域;
23.根据所述java层的申请,在所述c++层创建显示区域后,在java层创建与所述显示区域对应的目标显示区域,确定进行画面显示的目标显示区域。
24.第二方面,本技术实施例还提供了一种屏幕共享的控制装置,所述屏幕为在安卓平台下运行显示的显示终端,所述控制装置包括:
25.判断模块,用于获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;
26.处理模块,用于若所述屏幕显示指令不是共享显示指令,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;
27.共享显示模块,用于若所述屏幕显示指令是共享显示指令,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
28.进一步的,所述共享显示模块在用于得到共享图层时,所述共享显示模块具体用于:
29.获取视频解码器解析出的图形数据,根据所述图形数据确定所述图形数据包括的多个目标窗口;
30.针对于每个目标窗口,获取与所述每个目标窗口对应的目标共享区域;
31.根据预设的每个目标窗口的遮掩顺序,将多个目标窗口对应的目标共享区域按照所述遮掩顺序进行叠加,得到共享图层。
32.进一步的,所述共享显示模块还用于:
33.针对于每一个目标窗口,根据该目标窗口的大小和位置,在java层创建与该目标窗口对应的共享绘制区域,同时在c++层创建与该目标窗口对应的共享显示区域;
34.针对于每一个目标窗口,将该目标窗口对应的图形数据绘制在java层的共享绘制区域上;
35.针对于每一个目标窗口,将所述c++层的共享显示区域与所述java层的共享绘制区域进行二次绑定,在所述共享显示区域中获取所述共享绘制区域中的图形数据,得到与该目标窗口对应的目标共享区域。
36.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的屏幕共享的控制方法的步骤。
37.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的屏幕共享的控制方法的步骤。
38.本技术实施例提供的一种屏幕共享的控制方法、装置、电子设备及存储介质,所述屏幕为在安卓平台下运行显示的显示终端,所述控制方法包括:获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;若不是,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;若是,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
39.这样,采用本技术提供的技术方案能够针对安卓平台运行的显示终端,通过共享显示指令,创建共享绘制区域,将多个需要共享的安卓屏幕与共享绘制区域绑定,将获取到的图形数据绘制在共享绘制区域后得到共享图层,将共享图层同时显示在绑定的多个安卓屏幕上,在保证单个显示终端的显示屏幕正常显示的同时,还可以实现多个显示终端的显示屏幕同时显示同一画面的共享显示,提升了屏幕显示的多样性。
40.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
41.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
42.图1示出了本技术实施例所提供的一种屏幕共享的控制方法的流程图;
43.图2示出了本技术实施例所提供的另一种屏幕共享的控制方法的流程图;
44.图3示出了本技术实施例所提供的一种屏幕共享的控制装置的结构图;
45.图4示出了本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中的附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
47.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本技术保护的范围。
48.为了使得本领域技术人员能够使用本技术内容,结合特定应用场景“屏幕共享”,给出以下实施方式,对于本领域技术人员来说,在不脱离本技术的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。
49.本技术实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要进行安卓平台屏幕共享的场景,本技术实施例并不对具体的应用场景作限制,任何使用本技术实施例提供的一种屏幕共享的控制方法、装置、电子设备及存储介质的方案均在本技术保护范围内。
50.值得注意的是,随着各种智能显示终端的多样化和普及,特别是移动智能终端,笔记本,智能电视机的广泛使用,在智能移动终端之间进行高画质的实时屏幕共享的技术也逐渐成熟。可以将屏幕联动显示应用到不同的使用场景中,智能座舱的场景就是其中的代表场景之一,智能座舱作为一项车内服务,目前被越来越多的车厂提出,所谓智能座舱,指的是对汽车内部的乘坐空间进行改造,使得驾驶和乘坐体验能够更加舒适和智能化;目前市场主流智能座舱的基本配置包括双屏交互、智能语音、车联网等。
51.目前,在智能座舱实现双屏交互时,由于智能座舱设置的显示屏幕一般是运行在安卓系统之下的,而安卓系统只支持单独的渲染,即,显示界面只能在单独的显示屏上进行显示,不能够做到同一个显示界面在不同的显示屏幕上进行显示,无法满足车内多个显示屏共享的需求。因此,如何在安卓平台中实现多屏共享,成为了亟待解决的问题。
52.基于此,本技术提出了一种屏幕共享的控制方法、装置、电子设备及存储介质,所述屏幕为在安卓平台下运行显示的显示终端,所述控制方法包括:获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;若不是,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;若是,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析
出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
53.这样,采用本技术提供的技术方案能够针对安卓平台运行的显示终端,通过共享显示指令,创建共享绘制区域,将多个需要共享的安卓屏幕与共享绘制区域绑定,将获取到的图形数据绘制在共享绘制区域后得到共享图层,将共享图层同时显示在绑定的多个安卓屏幕上,在保证单个显示终端的显示屏幕正常显示的同时,还可以实现多个显示终端的显示屏幕同时显示同一画面的共享显示,提升了屏幕显示的多样性。
54.为便于对本技术进行理解,下面将结合具体实施例对本技术提供的技术方案进行详细说明。
55.请参阅图1,图1为本技术实施例所提供的一种屏幕共享的控制方法的流程图,如图1中所示,所述屏幕为在安卓平台下运行显示的显示终端,所述控制方法包括:
56.s101、获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;
57.该步骤中,根据获取到的屏幕显示指令,确定该屏幕显示指令是否是共享显示指令;例如,可以根据手机下达屏幕显示指令,通过车联网控制智能座舱的一个或多个显示屏幕,还可以根据智能座舱内的屏幕控制器或者某个车载屏幕的触控操作下达屏幕显示指令。
58.s102、若不是,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;
59.该步骤中,若屏幕显示指令不是共享显示指令,则通过在应用层,即app层创建目标显示区域,从而将画面绘制在目标显示区域,根据目标显示区域关联的唯一屏幕标识,将在目标显示区域绘制后的画面显示在唯一屏幕标识对应的目标屏幕上。
60.需要说明的是,通过以下步骤确定进行画面显示的目标显示区域:
61.s1021、根据所述屏幕显示指令,控制java层向c++层申请创建目标显示区域;
62.s1022、根据所述java层的申请,在所述c++层创建显示区域后,在java层创建与所述显示区域对应的目标显示区域,确定进行画面显示的目标显示区域。
63.该步骤中,根据屏幕显示指令,控制应用侧(java层)通过窗口管理系统向系统侧(c++层)的surfaceflinger申请创建surface(目标显示区域),根据该申请,在surfaceflinger的内部创建一个layer(显示区域)后,在应用侧(java层)创建与该layer对应的一个surface,一个surface对应于一个layer,将获取到的图形数据绘制在surface上,从而确定进行画面显示的目标显示区域。
64.s103、若是,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
65.该步骤中,若是共享显示指令,在应用侧,即app端创建共享绘制区域,并将需要进行共享显示的多个目标屏幕对应的共享屏幕标识与创建的共享绘制区域进行绑定,获取视频解码器解析出的图形数据,将该图形数据绘制在该共享绘制区域上,从而得到共享图层,
根据绑定的多个共享屏幕标识,将该共享图层显示在共享屏幕标识对应的目标屏幕上,使多个目标屏幕显示同一画面。
66.需要说明的是,得到共享图层的步骤请参阅图2,图2为本技术实施例所提供另一种屏幕共享的控制方法的流程图,如图2中所示,通过以下步骤得到共享图层:
67.s201、获取视频解码器解析出的图形数据,根据所述图形数据确定所述图形数据包括的多个目标窗口;
68.该步骤中,获取视频解码器解析出的图形数据,图形数据中包括了多个视图,每个视图对应与一个目标窗口。
69.s202、针对于每个目标窗口,获取与所述每个目标窗口对应的目标共享区域;
70.该步骤中,针对于每一个目标窗口,通过以下步骤得到对应的目标共享区域:
71.s2021、针对于每一个目标窗口,根据该目标窗口的大小和位置,在java层创建与该目标窗口对应的共享绘制区域,同时在c++层创建与该目标窗口对应的共享显示区域;
72.该步骤中,根据android窗口管理系统windowmanagerservice,针对于每一个目标窗口,根据该目标窗口的大小和位置,在java层app端创建与该目标窗口对应的共享绘制区域(利用surfaceview创建surface),同时在c++层surfaceflinger的sharedlayer中创建与该目标窗口对应的共享显示区域(利用surfaceview创建surface的能力来创建layer)。
73.s2022、针对于每一个目标窗口,将该目标窗口对应的图形数据绘制在java层的共享绘制区域上;
74.该步骤中,将每个目标窗口中的图形数据绘制在java层创建好的共享绘制区域(surfaceview创建surface)上。
75.s2023、针对于每一个目标窗口,将所述c++层的共享显示区域与所述java层的共享绘制区域进行二次绑定,在所述共享显示区域中获取所述共享绘制区域中的图形数据,得到与该目标窗口对应的目标共享区域。
76.该步骤中,sharedlayer是c++平台范畴,先创建共享显示区域(layer),之后逆向绑定到application的layersurface(surfaceview创建surface)上,达到图层的二次映射效果。
77.s203、根据预设的每个目标窗口的遮掩顺序,将多个目标窗口对应的目标共享区域按照所述遮掩顺序进行叠加,得到共享图层。
78.该步骤中,每个目标窗口都有遮掩顺序(z轴序),利用surfaceview的窗口管理系统能够改变layer的z轴序,将多个layer按照z轴序进行叠加,得到一个共享图层。
79.需要说明的是,在步骤s103中,通过以下步骤将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上:
80.1)、将共享图层提交给图形缓冲区;
81.2)、根据屏幕刷新信号,读取所述图形缓冲区的共享图层,将读取到的所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上。
82.该步骤中,将共享图层提交给图形缓冲区(framebuffer),通过不停的向framebuffer中写入数据,根据屏幕刷新信号,显示控制器就从framebuffer中读取数据并显示出来,显示在绑定的至少一个共享屏幕标识对应的目标屏幕上。
83.示例性的,当获取到共享显示指令时,首先,在app端参照surfaceview的机制,重
构一个共享的surfaceview,主要目的:1、利用surfaceview创建surface的能力来创建layer;2、利用surfaceview的窗口管理系统能够改变layer的z轴序;3、继承了surfaceview的属性值对窗口进行设置;4、surfaceview具有独特创建surface的能力。然后,windowmanagerservice(android窗口管理系统):为新构建的surfaceview改变窗体的z轴序,通过windowmanagerservice创建新的图层,窗口管理系统跟surfaceview创建图层进行绑定。其次,surfaceflinger:创建新的共享图层,处理创建的共享图层与显示屏直接进行绑定,参与android surfaceflinger的合成。再者,在图层的本地窗口构建图层共享的bufferqueueproducter,提供渲染的数据来源,共享图层的数据来源可以是mp4视频文件,也可以是承载视频数据的carplay。最后,hal层会对共享图层创建hwclayer,hwclayer跟显示屏直接交互,把共享图层的数据显示到不同的显示屏上。
84.示例性的,屏幕共享的控制方法应用于改进后的android的显示框架,改进后的android的显示框架包括以下几部分:
85.1、application层,该应用层只负责数据的绘制,包括activity活动窗口中的view、layersurface中的surfaceview以及presention中的view;其中,layersurface是利用surfaceview的机制创建了图层,这个图层经过二次绑定可以直接关联到platform层的sharedlayer;presention里面的view是属于另一块图层进行的绘制,在上述阶段就可以确定出图层所绑定的多个显示屏。
86.2、application framework层,包括windowmanagerservice,用于提供画布(窗口),每一个画布(窗口)都会有一个图层对应,图层的显示位置由window层级决定。
87.3、platform层,包括normallayer和sharedlayer,属于c++层的平台范畴,主要是正常图层通过normallayer来参与图像合成进行单独屏幕的画面渲染,进行一次绑定就可以显示;sharedlayer先创建共享图层,之后逆向绑定到application的layersurface上,才可以达到图层的二次映射效果。
88.4、hal层,属于跟display显示屏直接交互部分,从surfaceflinger合成的数据可以看到,normallayer正常图层是显示在一个显示屏,而sharedlayer这样的共享图层可以显示到多块屏幕上。
89.这里,在智能座舱中的多屏交互中,多个屏幕在不同的activity下显示同一块数据内容,同时用一个mediacodec来解码显示,原生的android只支持单独的渲染,单独的图层只能在特定的显示屏上显示,不能够做到同一个图层在不同的屏上显示。而本实施例通过采用图层共享,能够获取同一图层的数据信息,在一个vsync(垂直同步信号)就能完成合成,并且能够显示在不同的屏幕上,对android图像合成策略进行了修正,图层共享提高了合成效率,降低系统中图像合成进程的cpu占用率,用户体验比较好,解决了智能座舱多屏显示同一图层的问题,完全不会影响60fp视频流的播放,视频流播放流畅。
90.本技术实施例提供的一种屏幕共享的控制方法,所述屏幕为在安卓平台下运行显示的显示终端,所述控制方法包括:获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;若不是,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;若是,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享
绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
91.这样,采用本技术提供的技术方案能够针对安卓平台运行的显示终端,通过共享显示指令,创建共享绘制区域,将多个需要共享的安卓屏幕与共享绘制区域绑定,将获取到的图形数据绘制在共享绘制区域后得到共享图层,将共享图层同时显示在绑定的多个安卓屏幕上,在保证单个显示终端的显示屏幕正常显示的同时,还可以实现多个显示终端的显示屏幕同时显示同一画面的共享显示,提升了屏幕显示的多样性。
92.基于同一申请构思,本技术实施例中还提供了与上述实施例提供一种屏幕共享的控制方法对应的一种屏幕共享的控制装置,由于本技术实施例中的装置解决问题的原理与本技术上述实施例一种屏幕共享的控制方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
93.请参阅图3,图3为本技术实施例所提供的一种屏幕共享的控制装置的结构图。如图3中所示,所述控制装置310包括:
94.判断模块311,用于获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;
95.处理模块312,用于若所述屏幕显示指令不是共享显示指令,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;
96.共享显示模块313,用于若所述屏幕显示指令是共享显示指令,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
97.可选的,所述共享显示模块313在用于得到共享图层时,所述共享显示模块313具体用于:
98.获取视频解码器解析出的图形数据,根据所述图形数据确定所述图形数据包括的多个目标窗口;
99.针对于每个目标窗口,获取与所述每个目标窗口对应的目标共享区域;
100.根据预设的每个目标窗口的遮掩顺序,将多个目标窗口对应的目标共享区域按照所述遮掩顺序进行叠加,得到共享图层。
101.可选的,所述共享显示模块313还用于:
102.针对于每一个目标窗口,根据该目标窗口的大小和位置,在java层创建与该目标窗口对应的共享绘制区域,同时在c++层创建与该目标窗口对应的共享显示区域;
103.针对于每一个目标窗口,将该目标窗口对应的图形数据绘制在java层的共享绘制区域上;
104.针对于每一个目标窗口,将所述c++层的共享显示区域与所述java层的共享绘制区域进行二次绑定,在所述共享显示区域中获取所述共享绘制区域中的图形数据,得到与该目标窗口对应的目标共享区域。
105.可选的,所述共享显示模块313在用于将所述共享图层显示在绑定的至少一个共
享屏幕标识对应的目标屏幕上时,所述共享显示模块313具体用于:
106.将共享图层提交给图形缓冲区;
107.根据屏幕刷新信号,读取所述图形缓冲区的共享图层,将读取到的所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上。
108.可选的,所述处理模块312在用于确定进行画面显示的目标显示区域时,所述处理模块312具体用于:
109.根据所述屏幕显示指令,控制java层向c++层申请创建目标显示区域;
110.根据所述java层的申请,在所述c++层创建显示区域后,在java层创建与所述显示区域对应的目标显示区域,确定进行画面显示的目标显示区域。
111.本技术实施例提供的一种屏幕共享的控制装置,所述屏幕为在安卓平台下运行显示的显示终端,所述控制装置包括:判断模块,用于获取屏幕显示指令,确定所述屏幕显示指令是否是共享显示指令;处理模块,用于若所述屏幕显示指令不是共享显示指令,则确定进行画面显示的目标显示区域,并基于所述目标显示区域关联的唯一屏幕标识,将在所述目标显示区域绘制后的画面显示在所述唯一屏幕标识对应的目标屏幕上;共享显示模块,用于若所述屏幕显示指令是共享显示指令,则创建共享绘制区域,将所述共享显示指令中的各个目标屏幕对应的共享屏幕标识与所述共享绘制区域进行绑定,并将视频解码器解析出的图形数据绘制在所述共享绘制区域上,得到共享图层,将所述共享图层显示在绑定的至少一个共享屏幕标识对应的目标屏幕上,以使多个屏幕同时显示所述共享图层对应的同一画面。
112.这样,采用本技术提供的技术方案能够针对安卓平台运行的显示终端,通过共享显示指令,创建共享绘制区域,将多个需要共享的安卓屏幕与共享绘制区域绑定,将获取到的图形数据绘制在共享绘制区域后得到共享图层,将共享图层同时显示在绑定的多个安卓屏幕上,在保证单个显示终端的显示屏幕正常显示的同时,还可以实现多个显示终端的显示屏幕同时显示同一画面的共享显示,提升了屏幕显示的多样性。
113.请参阅图4,图4为本技术实施例所提供的一种电子设备的结构示意图。如图4中所示,所述电子设备400包括处理器410、存储器420和总线430。
114.所述存储器420存储有所述处理器410可执行的机器可读指令,当电子设备400运行时,所述处理器410与所述存储器420之间通过总线430通信,所述机器可读指令被所述处理器410执行时,可以执行如上述图1以及图2所示方法实施例中的屏幕共享的控制方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
115.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的屏幕共享的控制方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
116.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
117.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
118.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
119.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
120.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
121.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1