CN117311653A - 屏幕共享方法、装置及电子设备 - Google Patents
屏幕共享方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117311653A CN117311653A CN202311137446.4A CN202311137446A CN117311653A CN 117311653 A CN117311653 A CN 117311653A CN 202311137446 A CN202311137446 A CN 202311137446A CN 117311653 A CN117311653 A CN 117311653A
- Authority
- CN
- China
- Prior art keywords
- application
- screen
- target application
- target
- surface view
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006870 function Effects 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 239000000872 buffer Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
Abstract
本申请提供了一种屏幕共享方法、装置、电子设备及计算机可读存储介质;方法包括:当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;分别从至少一个目标应用对应的数据缓存区中读取显示数据;分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种屏幕共享方法、装置及电子设备。
背景技术
目前,在应用的多屏共享的场景中,通常是对应每个屏幕安装并启动一个相同的应用客户端进行相应应用数据的显示,具体是将其中一个屏幕对应存储的应用数据通过硬件拷贝的形式拷贝至其他屏幕内的应用客户端进行播放。然而,这种方式需要依赖系统的硬件功能,不同厂商之间可能不兼容,而硬件拷贝无法满足性能需求,对于高刷新率的应用数据容易出现卡顿,使用多个应用客户端并拷贝数据也浪费内存。
发明内容
本申请实施例提供一种屏幕共享方法、装置、电子设备及计算机可读存储介质,能够提高应用的多屏共享性能,节省内存空间。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种屏幕共享方法,包括:
当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;
分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;
分别从至少一个目标应用对应的数据缓存区中读取显示数据;
分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
上述方案中,所述目标应用包括第一表面视图及第二表面视图,所述第二表面视图的数量与目标应用关联的第二屏幕的数量相同,所述第一表面视图用于显示所述目标应用在所述第一屏幕内的应用界面,所述第二表面视图用于显示所述目标应用在所述第二屏幕内的目标应用界面。
上述方案中,所述分别确定所述至少一个目标应用中各目标应用关联的第二屏幕,包括:
分别针对至少一个目标应用中的各目标应用,执行以下处理:
获得所述目标应用的第一表面视图关联的第二表面视图;
将所述第二表面视图对应的第二屏幕确定为所述目标应用关联的第二屏幕。
上述方案中,所述确定所述至少一个应用中的至少一个目标应用,包括:
获得所述至少一个应用中各应用的应用共享信息,所述应用共享信息用于表征相应应用是否为多屏共享应用;
基于所述应用共享信息,从所述至少一个应用中确定至少一个目标应用,所述目标应用为多屏共享应用。
上述方案中,在至少一个应用的应用界面显示在第一屏幕内之前,所述方法还包括:
生成所述至少一个应用中各应用对应的表面视图;
其中,如果所述应用不为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图;如果所述应用为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图、及对应于所述应用关联的第二屏幕的第二表面视图。
上述方案中,所述确定所述至少一个应用中的至少一个目标应用,包括:
响应于针对所述第一屏幕的屏幕共享指令,接收针对所述第一屏幕内的至少一个目标区域的选择操作,每个目标区域内呈现有一个应用界面;
将所述目标区域呈现的应用界面对应的应用确定为所述目标应用。
上述方案中,所述确定所述至少一个应用中的至少一个目标应用之后,所述方法还包括:
获得所述目标应用对应于所述第一屏幕的第一表面视图;
基于所述第一表面视图,生成所述目标应用关联的第二屏幕的第二表面视图。
上述方案中,所述确定所述至少一个应用中的至少一个目标应用,包括:
针对至少一个应用中的各应用,执行以下处理:
在所述应用的应用界面内呈现共享功能项;
如果接收到针对所述共享功能项的触发操作,将所述应用确定为目标应用。
本申请实施例提供一种屏幕共享装置,包括:
控制器,用于连接第一屏幕及至少一个第二屏幕,用于控制在第一屏幕和第二屏幕内的显示内容,当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;分别从至少一个目标应用对应的数据缓存区中读取显示数据;分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
本申请实施例提供一种屏幕共享装置,包括:
第一确定模块,用于当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;
第二确定模块,用于分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;
读取模块模块,用于分别从至少一个目标应用对应的数据缓存区中读取显示数据;
显示模块,用于分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的屏幕共享方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的屏幕共享方法。
本申请实施例通过从目标应用的同一个数据缓存区中读取显示数据,并将读取的显示数据分别显示在第一屏幕及第二屏幕内,仅使用一个数据缓存区进行多屏共享,无需对数据进行硬件拷贝,从而提高了应用的多屏共享性能,节省了系统的内存空间。
附图说明
图1是本申请实施例提供的屏幕共享系统100的一个可选的结构示意图;
图2是本申请实施例提供的电子设备200的一个可选的结构示意图;
图3是本申请实施例提供的屏幕共享方法的一个可选的流程示意图;
图4是本申请实施例提供的目标应用与第二屏幕之间的关联关系的一个可选的示意图;
图5是本申请实施例提供的屏幕共享系统的一个可选的架构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,及作为一种使用方式的举例说明,并不在于限制本发明的使用范围,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
HWC(hwcomposer)是Android中进行窗口(Layer)合成和显示的HAL层模块,其实现是特定于设备的,而且通常由显示设备制造商(OEM)完成,为SurfaceFlinger服务提供硬件支持。
SurfaceFlinger可以使用OpenGL ES合成Layer,这需要占用并消耗GPU资源。大多数GPU都没有针对图层合成进行优化,当SurfaceFlinger通过GPU合成图层时,应用程序无法使用GPU进行自己的渲染。而HWC通过硬件设备进行图层合成,可以减轻GPU的合成压力。
相关技术中,应用的多屏共享方式中,具体是在一个屏幕安装并显示应用的客户端以显示应用数据,并从应用的一个缓存区中读取显示数据显示在屏幕内,而将应用共享至其他屏幕时,需要针对每个屏幕创建一个缓存区,并将应用的所有数据分别硬件拷贝至各个缓存区,以在不同的屏幕进行显示,从而实现应用的多屏共享。示例性地,如果应用为视频播放应用,则需要在多个屏幕安装并显示视频播放应用的播放器,并针对多个播放器分别建立一个缓存区,拷贝多份视频数据至各缓存区以在多个屏幕进行播放。然而,硬件拷贝的方式无法满足性能需求,对于高刷新率的应用数据容易出现卡顿,使用多个应用客户端并拷贝数据也浪费内存。
本申请实施例提供一种屏幕共享方法、装置、电子设备和计算机可读存储介质,能够提高应用的多屏共享性能,节省系统的内存空间。
首先对本申请实施例提供的屏幕共享系统进行说明,参见图1,图1是本申请实施例提供的屏幕共享系统100的一个可选的结构示意图,屏幕共享系统100包括第一屏幕101,至少一个第二屏幕102及控制器103。其中,控制器103用于连接所述第一屏幕101及所述至少一个第二屏幕102,用于控制在第一屏幕和第二屏幕内的显示内容。本申请实施例提供的平面共享装置包括控制器103。这里,控制器103可以与第一屏幕101设置在同一设备内,该设备可以是终端。终端可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备、车载中控等,但并不局限于此。示例性地,控制器103可以是车载中控,第一屏幕101为设置在车载中控上的主屏,而第二屏幕102为与车载中控连接的副屏。控制器103与第一屏幕101还可以是分别独立的两个设备。例如控制器103可以是主机,而第一屏幕101与第二屏幕102为与主机连接的显示器。控制器103还可以是机顶盒,第一屏幕101与第二屏幕102为与机顶盒连接的电视机。
优选的,控制器和屏幕之间通过线缆进行硬连接,以确保足够的传输带宽和速率,提高数据传输效率,降低屏幕共享延迟等。其他实施例中,也可以采用无线连接,以满足实际场景下不同的屏幕使用需求,以灵活适应多个屏幕的使用范围。这里,无线连接的方式可以但不限于是无线网络连接或蓝牙连接等。在实际实施时,对于不同的屏幕,可以均采用相同的连接方式与控制器连接,还可以是分别根据实际需求采用不完全一致的连接方式与控制器连接。
接下来对本申请实施例提供的用于实施上述屏幕共享方法的电子设备进行说明,参见图2,图2是本申请实施例提供的电子设备200的一个可选的结构示意图,在实际应用中,电子设备200可以实施为图1中的屏幕共享装置100或控制器103。
图2所示的电子设备200包括:至少一个处理器201、存储器205、至少一个网络接口202和用户接口203。电子设备200中的各个组件通过总线系统204耦合在一起。可理解,总线系统204用于实现这些组件之间的连接通信。总线系统204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统204。
处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口203包括使得能够呈现媒体内容的一个或多个输出装置2031,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口203还包括一个或多个输入装置2032,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器205可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器205可选地包括在物理位置上远离处理器201的一个或多个存储设备。
存储器205包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器205旨在包括任意适合类型的存储器。
在一些实施例中,存储器205能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,本申请实施例中,存储器205中存储有操作系统2051、网络通信模块2052、呈现模块2053、输入处理模块2054及屏幕共享装置2055;具体地,
操作系统2051,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块2052,用于经由一个或多个(有线或无线)网络接口202到达其他计算设备,示例性的网络接口202包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块2053,用于经由一个或多个与用户接口203相关联的输出装置2031(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块2054,用于对一个或多个来自一个或多个输入装置2032之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的屏幕共享装置可以采用软件方式实现,图2示出了存储在存储器205中的屏幕共享装置2055,其可以是程序和插件等形式的软件,包括以下软件模块:第一确定模块20551、第二确定模块20552、读取模块20553和显示模块20554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的屏幕共享装置可以采用硬件方式实现,作为示例,本申请实施例提供的屏幕共享装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的屏幕共享方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的屏幕共享方法。
参见图3,图3是本申请实施例提供的屏幕共享方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
步骤301,当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;
步骤302,分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;
步骤303,分别从至少一个目标应用对应的数据缓存区中读取显示数据;
步骤304,分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
这里,至少一个应用中的各应用可以分别是不同的应用。例如可以是视频应用、导航应用等。电子设备在确定至少一个应用的应用界面显示在第一屏幕内时,确定至少一个应用中的至少一个目标应用。这里,应用界面中显示有相应应用的显示数据。示例性地,视频应用的显示数据可以包括视频数据。导航应用的显示数据则包括地图导航数据等。
在实际实施时,目标应用为需要进行屏幕共享的应用。电子设备从显示在第一屏幕内的至少一个第一应用中,确定待共享的至少一个目标应用。本申请实施例中,目标应用为跨屏应用。接着,电子设备分别确定至少一个目标应用中各目标应用关联的第二屏幕。这里,目标应用与第二屏幕的关联表征目标应用能够显示在第二屏幕上。本申请实施例中,一个目标应用可以关联一个或多个第二屏幕。
示例性地,参见图4,图4是本申请实施例提供的目标应用与第二屏幕之间的关联关系的一个可选的示意图。这里,至少一个应用包括应用1、应用2和应用3,确定得到的至少一个目标应用包括应用1和应用2。其中,应用1关联的第二屏幕包括第二屏幕A和第二屏幕B,应用2关联的第二屏幕包括第二屏幕B和第二屏幕C。
本申请实施例中,各目标应用分别对应一个数据缓存区,该数据缓存区用于存储待显示的显示数据。当某个应用启动时,待显示的数据会首先存储在对应的数据缓存区内,以提高屏幕显示的效率,减少延迟。在实际实施时,电子设备分别从至少一个目标应用对应的数据缓存区中读取显示数据,然后将读取的显示数据显示在相应目标应用对应于第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。也即是说,从同一个数据缓存区内读取显示数据同时显示在第一屏幕及第二屏幕内,实现应用的显示数据的多屏共享。在一实施例中,目标应用界面与对应的应用界面的界面内容可以相同也可以不同。在一实施例中,显示数据可以包括界面功能数据及内容数据。本申请实施例中,可以将第一屏幕作为主屏幕,在处理第一屏幕对应的应用界面时,读取所有显示数据进行显示。而在处理第二屏幕对应的目标应用界面时,可以读取所有显示数据进行显示,从而与第一屏幕的应用界面的界面内容一致,也可以是仅读取部分显示数据进行显示,例如仅读取内容数据进行显示,从而与第一屏幕的应用界面的界面内容显示为不同。示例性地,如果目标应用为视频应用,则目标应用的界面功能数据为用于显示应用功能项的显示区域数据,而内容数据则包括视频数据。目标应用对应于第一屏幕内的显示内容可以包括界面功能项及视频内容,界面功能项例如为控制按钮等。而目标应用界面则可以不包括界面功能项,仅包括用于视频内容。
在实际实施时,数据缓存区内显示的显示数据可以在读取之后删除。具体地,如果数据缓存区内缓存的显示数据为视频数据,视频数据包括多帧视频帧,则电子设备每读取一帧视频帧显示在第一屏幕的应用界面内及目标应用关联的第二屏幕的目标应用界面内后,从数据缓存区内删除该帧视频帧,并依次读取下一帧视频帧显示在第一屏幕及目标应用关联的第二屏幕内。
本申请实施例中,通过从目标应用的同一个数据缓存区中读取显示数据,并将读取的显示数据分别显示在第一屏幕及第二屏幕内,仅使用一个数据缓存区进行多屏共享,无需对数据进行硬件拷贝,从而提高了应用的多屏共享性能,节省了系统的内存空间,且减少了多屏共享的延迟,使用同一个数据缓存区进行数据的读取和显示,也使得两个屏幕的显示内容的同步度提高。
在一些实施例中,所述目标应用包括第一表面视图及第二表面视图,所述第二表面视图的数量与目标应用关联的第二屏幕的数量相同,所述第一表面视图用于显示所述目标应用在所述第一屏幕内的应用界面,所述第二表面视图用于显示所述目标应用在所述第二屏幕内的目标应用界面。
以安卓系统的应用为例,进行具体介绍。目标应用包括第一表面视图及至少一个第二表面视图。其中,第二表面视图的数量与目标应用关联的第二屏幕的数量相同,每个第二表面视图显示在一个第二屏幕内。本申请实施例中,目标应用的第一表面视图与各第二表面视图之间具有关联关系。本申请实施例中,通过将目标应用的多个表面视图分别显示在不同屏幕内,实现目标应用的跨屏共享。
在一些实施例中,所述步骤302,包括:分别针对至少一个目标应用中的各目标应用,执行以下处理:获得所述目标应用的第一表面视图关联的第二表面视图;将所述第二表面视图对应的第二屏幕确定为所述目标应用关联的第二屏幕。
在实际实施时,各表面视图与屏幕之间的对应关系可以通过对表面视图添加屏幕关联标识实现。这里,屏幕关联标识可以为屏幕的身份标识,对每个表面视图添加屏幕的身份标识,以使在处理表面视图时,能够根据该标识确定表面视图对应的显示屏幕,将该表面视图显示在相应的屏幕内。这里,每个屏幕具有唯一的身份标识。
本申请实施例中,第一表面视图与各第二表面视图之间具有关联关系。具体地,第二表面视图中可以添加有关联标识,用于指示与第一表面视图之间的关联关系。示例性地,对应于第一屏幕的第一表面视图为SurfaceView,SurfaceView关联有数据缓存区,对应于第二屏幕的第二表面视图MirrorSurfaceView中包含有SurfaceView对象实例,且第二表面视图上添加有关联标识,例如FLAG_LAYER_TYPE_MIRROR。在处理第二表面视图时,可以根据关联标识确定第二表面视图与第一表面视图关联,从而访问第一表面视图关联的数据缓存区,从中读取数据进行显示。
在一实施例中,还可以针对显示数据与表面视图建立关联关系。具体地,如果显示数据包括界面功能数据及内容数据,则可以分别针对界面功能项数据及内容数据与表面视图建立关联关系。示例性地,可以对第一表面视图添加标识A和标识B,而对第二表面视图添加标识B。其中,标识A用于指示关联界面功能数据,而标识B用于指示关联内容数据。从而在处理第一表面视图的画面绘制任务时,读取界面功能数据及内容数据进行显示,而在处理第二表面视图的画面绘制任务时,仅读取内容数据进行显示。
在实际实施时,电子设备获得目标应用的第一表面视图关联的第二表面视图,确定第二表面视图位于的第二屏幕,将第二表面视图所显示于的第二屏幕确定为目标应用关联的第二屏幕。应当理解的是,本申请实施例根据第一表面视图关联的第二表面视图,来确定目标应用关联的第二表面视图,能够方便地对第二屏幕进行确定。
在一些实施例中,步骤301中,所述确定所述至少一个应用中的至少一个目标应用,包括:获得所述至少一个应用中各应用的应用共享信息,所述应用共享信息用于表征相应应用是否为多屏共享应用;基于所述应用共享信息,从所述至少一个应用中确定至少一个目标应用,所述目标应用为多屏共享应用。
本申请实施例中,每个应用的应用共享信息为预先设置。在实际实施时,电子设备获得各应用的应用共享信息,根据应用共享信息,从至少一个应用中确定应用共享信息表征为多屏共享应用的目标应用。在实际场景下,应用的共享信息还包括应用的共享对象,这里,共享对象用于指示目标应用关联的第二屏幕,以用于将目标应用共享至关联的第二屏幕。通过获取应用的应用共享信息来确定应用是否为目标应用,能够方便目标应用的确定,在启动应用的同时,即能够自行确定应用是否为目标应用,及进一步确定目标应用关联的第二屏幕,从而自动将目标应用的显示内容共享至对应的第二屏幕,实现快速共享,无需人为操作。
在一些实施例中,在至少一个应用的应用界面显示在第一屏幕内之前,所述方法还包括:生成所述至少一个应用中各应用对应的表面视图;其中,如果所述应用不为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图;如果所述应用为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图、及对应于所述应用关联的第二屏幕的第二表面视图。
本申请实施例中,应用共享信息携带目标应用关联的第二屏幕的屏幕信息。在实际实施时,电子设备可以预先创建应用对应于各屏幕的表面视图。具体地,针对至少一个应用中的任一应用,进行相应表面视图的创建。这里,如果应用不是目标应用,则仅创建该应用对应于第一屏幕的第一表面视图,而如果应用为目标应用,则创建该应用对应于第一屏幕的第一表面视图及对应于关联的第二屏幕的第二表面视图。具体地,基于应用共享信息确定应用是否为目标应用,如果不是目标应用,则创建对应的第一表面视图,如果是目标应用,则首先创建针对第一屏幕的第一表面视图,进一步基于应用共享信息携带的屏幕信息,确定目标应用关联的第二屏幕,进而创建针对关联的第二屏幕的第二表面视图。这里,在创建第二表面视图时,建立第二表面视图与第一表面视图之间的关联关系。这里,关联关系参见本申请上述实施例,在此不再赘述。
在一些实施例中,所述确定所述至少一个应用中的至少一个目标应用,包括:响应于针对所述第一屏幕的屏幕共享指令,接收针对所述第一屏幕内的至少一个目标区域的选择操作,每个目标区域内呈现有一个应用界面;将所述目标区域呈现的应用界面对应的应用确定为所述目标应用。
在实际实施时,电子设备可以响应于针对第一屏幕的屏幕共享指令,接收针对第一屏幕内的至少一个目标区域的选择操作。这里,第一屏幕包括多个目标区域,每个目标区域用于呈现一个应用界面,各目标区域在第一屏幕内不重叠。电子设备可以在第一屏幕显示至少一个应用的应用界面的过程中,获得屏幕共享指令。这里,屏幕共享指令可以是自动生成,例如可以是电子设备在检测到第二屏幕开机时,生成屏幕共享指令。在一实施例中,屏幕共享指令还可以是用户通过操作第一屏幕发出。具体地,电子设备接收针对第一屏幕上呈现的屏幕共享功能项的触发操作,生成屏幕共享指令。这里,屏幕共享功能项可以包括选择功能项及确定功能项。用户可以通过选择功能项选择第二屏幕,在选择第二屏幕后触发确定功能项,从而完成屏幕共享指令的生成。这里,对于确定功能项的触发操作可以是点击操作。应当理解的是,屏幕共享指令可以携带待共享的第二屏幕的指示信息。示例性地,屏幕共享指令可以携带待共享的第二屏幕为第二屏幕A的指示信息。在屏幕共享指令生成后,各目标区域呈现为功能项,能够供用户选择。用户针对目标区域的选择可以是通过点击操作、拖拽选中操作等触发。本申请实施例通过选择得到的至少一个目标区域来确定目标应用,使得能够方便用户根据需求进行应用的跨屏共享。
在一些实施例中,所述确定所述至少一个应用中的至少一个目标应用,包括:针对至少一个应用中的各应用,执行以下处理:在所述应用的应用界面内呈现共享功能项;如果接收到针对所述共享功能项的触发操作,将所述应用确定为目标应用。
在实际实施时,对于单个应用,应用的应用界面内可以呈现共享功能项,用户可以通过触发共享功能项来将应用确定为目标应用。具体地,电子设备响应于针对第一屏幕中应用的应用界面内的共享功能项的触发操作,将应用确定为目标应用。这里,共享功能项可以包括应用的共享对象,共享对象用于指示将应用共享的第二屏幕。具体地,共享功能项还可以包括选择菜单及确定功能项,选择菜单内包含多个第二屏幕的屏幕信息。用户可以针对选择菜单内呈现的屏幕信息进行第二屏幕的选择,在选择至少一个第二屏幕后通过触发确定功能项来完成所述触发操作的发出。本申请实施例通过针对单个应用进行操作,能够方便用户根据需求进行应用的跨屏共享。
在一些实施例中,所述确定所述至少一个应用中的至少一个目标应用之后,所述方法还包括:获得所述目标应用对应于所述第一屏幕的第一表面视图;基于所述第一表面视图,生成所述目标应用关联的第二屏幕的第二表面视图。
本申请实施例中,各应用针对第一屏幕的第一表面视图可以是预先创建。在实际实施时,如果目标应用是通过选择操作或者针对目标应用的共享功能项的触发操作确定,则可以在将应用确定为目标应用之后,创建目标应用针对关联的第二屏幕的第二表面视图。在一实施例中,电子设备还可以接收针对应用的共享功能项的更新操作。这里,更新操作能够对应用的共享属性及共享对象进行调节。共享属性为表征应用是否为多屏共享的目标应用,共享对象指示目标应用关联的第二屏幕。如果应用存在共享属性或共享对象的更新,则根据更新进行相应第二表面视图的更新。具体地,如果存在新增的第二屏幕,则对应创建新的第二表面视图。而如果存在减少的第二屏幕,则对应删除相应的第二表面视图。本申请实施例通过在确定应用为目标应用之后进行第二表面视图的创建,并在对应用的共享属性或共享对象存在更新时,相应进行第二表面视图的更新,能够避免系统资源的占用,从而更有效地利用系统资源。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图5,图5是本申请实施例提供的屏幕共享系统的一个可选的架构示意图。本申请实施例的屏幕共享系统基于车载中控,控制器内安装有安卓车机系统501,第一屏幕为主屏502,第二屏幕为副屏503。针对目标应用504创建有针对主屏502的第一表面视图SurfaceView505及针对副屏503的第二表面视图MirrorSurfaceView506。每个副屏对应一个MirrorSurfaceView。具体地,安卓车机系统针对目标应用504针对副屏创建MirrorSurfaceView类并继承原生SurfaceView,在MirrorSurfaceView中包含SurfaceView对象实例SurfaceView source。其中,SurfaceView504与数据缓存区SufferQueue507相关联,SurfaceView505对应的窗口NormalLayer508与SufferQueue507关联。
具体地,在目标应用中,创建SurfaceView对象用于主屏视频播放,创建MirrorSurfaceView对象用于副屏视频显示,并将主屏SurfaceView对象赋值给MirrorSurfaceView的内部引用,对MirrorSurfaceView添加标记位FLAG_LAYER_TYPE_MIRROR,并在创建MirrorSurfaceView对应的MirrorLayer时,传递该标记,以建立SurfaceView与MirrorSurfaceView之间的关联关系。如果目标应用为视频应用,在启动视频应用后,将视频帧数据送到SurfaceView对应的BufferQueue。SurfaceFlinger在处理NormalLayer508时,直接访问SufferQueue507读取数据进行处理,通过HWC进行图像合成并显示在相应的SurfaceView505内。而在处理副屏的MirrorSurfaceView506对应的窗口MirrorLayer509时,则获得MirrorSurfaceView506对应的标记位,根据标记位确定MirrorLayer509对应的主屏窗口NormalLayer508,则访问NormalLayer508对应的BufferQueue507,从中读取数据进行处理,通过HWC进行图像合成并显示在相应的MirrorSurfaceView506内。
下面继续说明本申请实施例提供的屏幕共享装置2055的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器205的屏幕共享装置2055中的软件模块可以包括:
第一确定模块20551,用于当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;
第二确定模块20552,用于分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;
读取模块20553,用于分别从至少一个目标应用对应的数据缓存区中读取显示数据;
显示模块20554,用于分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
在一些实施例中,所述目标应用包括第一表面视图及第二表面视图,所述第二表面视图的数量与目标应用关联的第二屏幕的数量相同,所述第一表面视图用于显示所述目标应用在所述第一屏幕内的应用界面,所述第二表面视图用于显示所述目标应用在所述第二屏幕内的目标应用界面。
在一些实施例中,所述第二确定模块20552,还用于分别针对至少一个目标应用中的各目标应用,执行以下处理:获得所述目标应用的第一表面视图关联的第二表面视图;将所述第二表面视图对应的第二屏幕确定为所述目标应用关联的第二屏幕。
在一些实施例中,所述第一确定模块20551,还用于获得所述至少一个应用中各应用的应用共享信息,所述应用共享信息用于表征相应应用是否为多屏共享应用;基于所述应用共享信息,从所述至少一个应用中确定至少一个目标应用,所述目标应用为多屏共享应用。
在一些实施例中,所述装置还包括:生成模块,用于生成所述至少一个应用中各应用对应的表面视图;其中,如果所述应用不为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图;如果所述应用为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图、及对应于所述应用关联的第二屏幕的第二表面视图。
在一些实施例中,所述第一确定模块20551,还用于响应于针对所述第一屏幕的屏幕共享指令,接收针对所述第一屏幕内的至少一个目标区域的选择操作,每个目标区域内呈现有一个应用界面;将所述目标区域呈现的应用界面对应的应用确定为所述目标应用。
在一些实施例中,所述装置还包括:生成模块,用于获得所述目标应用对应于所述第一屏幕的第一表面视图;基于所述第一表面视图,生成所述目标应用关联的第二屏幕的第二表面视图。
在一些实施例中,所述第一确定模块20551,还用于针对至少一个应用中的各应用,执行以下处理:在所述应用的应用界面内呈现共享功能项;如果接收到针对所述共享功能项的触发操作,将所述应用确定为目标应用。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的屏幕共享方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的屏幕共享方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例能够提高应用的多屏共享性能,节省系统的内存空间。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种屏幕共享方法,包括:
当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;
分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;
分别从至少一个目标应用对应的数据缓存区中读取显示数据;
分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
2.根据权利要求1所述的方法,所述目标应用包括第一表面视图及第二表面视图,所述第二表面视图的数量与目标应用关联的第二屏幕的数量相同,所述第一表面视图用于显示所述目标应用在所述第一屏幕内的应用界面,所述第二表面视图用于显示所述目标应用在所述第二屏幕内的目标应用界面。
3.根据权利要求2所述的方法,所述分别确定所述至少一个目标应用中各目标应用关联的第二屏幕,包括:
分别针对至少一个目标应用中的各目标应用,执行以下处理:
获得所述目标应用的第一表面视图关联的第二表面视图;
将所述第二表面视图对应的第二屏幕确定为所述目标应用关联的第二屏幕。
4.根据权利要求2所述的方法,所述确定所述至少一个应用中的至少一个目标应用,包括:
获得所述至少一个应用中各应用的应用共享信息,所述应用共享信息用于表征相应应用是否为多屏共享应用;
基于所述应用共享信息,从所述至少一个应用中确定至少一个目标应用,所述目标应用为多屏共享应用。
5.根据权利要求4所述的方法,在至少一个应用的应用界面显示在第一屏幕内之前,所述方法还包括:
生成所述至少一个应用中各应用对应的表面视图;
其中,如果所述应用不为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图;如果所述应用为目标应用,所述表面视图包括对应于所述第一屏幕的第一表面视图、及对应于所述应用关联的第二屏幕的第二表面视图。
6.根据权利要求2所述的方法,所述确定所述至少一个应用中的至少一个目标应用,包括:
响应于针对所述第一屏幕的屏幕共享指令,接收针对所述第一屏幕内的至少一个目标区域的选择操作,每个目标区域内呈现有一个应用界面;
将所述目标区域呈现的应用界面对应的应用确定为所述目标应用。
7.根据权利要求6所述的方法,所述确定所述至少一个应用中的至少一个目标应用之后,所述方法还包括:
获得所述目标应用对应于所述第一屏幕的第一表面视图;
基于所述第一表面视图,生成所述目标应用关联的第二屏幕的第二表面视图。
8.根据权利要求1所述的方法,所述确定所述至少一个应用中的至少一个目标应用,包括:
针对至少一个应用中的各应用,执行以下处理:
在所述应用的应用界面内呈现共享功能项;
如果接收到针对所述共享功能项的触发操作,将所述应用确定为目标应用。
9.一种屏幕共享装置,包括:
控制器,用于连接第一屏幕及至少一个第二屏幕,用于控制在第一屏幕和第二屏幕内的显示内容,当至少一个应用的应用界面显示在第一屏幕内时,确定所述至少一个应用中的至少一个目标应用,所述应用界面用于显示相应应用的显示数据,所述显示数据存储在相应应用对应的数据缓存区内;分别确定所述至少一个目标应用中各目标应用关联的第二屏幕;分别从至少一个目标应用对应的数据缓存区中读取显示数据;分别将读取的显示数据显示在相应目标应用对应于所述第一屏幕的应用界面内、及相应目标应用关联的第二屏幕的目标应用界面内。
10.一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311137446.4A CN117311653A (zh) | 2023-09-04 | 2023-09-04 | 屏幕共享方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311137446.4A CN117311653A (zh) | 2023-09-04 | 2023-09-04 | 屏幕共享方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311653A true CN117311653A (zh) | 2023-12-29 |
Family
ID=89285687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311137446.4A Pending CN117311653A (zh) | 2023-09-04 | 2023-09-04 | 屏幕共享方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311653A (zh) |
-
2023
- 2023-09-04 CN CN202311137446.4A patent/CN117311653A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108924626B (zh) | 图片生成方法、装置、设备及存储介质 | |
US9489165B2 (en) | System and method for virtual displays | |
US7911409B1 (en) | Independent views generated for multiple display devices by a software application | |
CN107341016B (zh) | 分屏机制下的焦点态实现方法、装置、终端及存储介质 | |
CN103329094A (zh) | 交叉环境重定向 | |
CN105308675A (zh) | 具有多任务处理的第二屏幕视图 | |
CN110019464B (zh) | 页面处理方法及装置 | |
CN102063242A (zh) | 显示系统及显示方法 | |
US7944421B2 (en) | Image display system, image display method, image display device, image data processor, program, storage medium, and image processing program distribution server | |
KR20130081829A (ko) | 이미지 제공 시스템, 이를 위한 장치 및 이미지 제공 방법 | |
US20170185422A1 (en) | Method and system for generating and controlling composite user interface control | |
WO2012107975A1 (ja) | 仮想計算機表示装置、仮想計算機表示方法、仮想計算機表示プログラム、記録媒体、及び集積回路 | |
KR20200042798A (ko) | 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체 | |
CN113645369B (zh) | 多个屏幕的显示方法及装置、计算机可读存储介质、终端 | |
JP2008158342A (ja) | 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体 | |
CN112764627B (zh) | 一种升级包安装进度显示方法及显示设备 | |
CN110362375A (zh) | 桌面数据的显示方法、装置、设备和存储介质 | |
CN117311653A (zh) | 屏幕共享方法、装置及电子设备 | |
CN112492399A (zh) | 信息显示方法、装置及电子设备 | |
US9225818B2 (en) | Mobile terminal | |
CN112106025A (zh) | 用于提供软件平台的服务器和运行服务器的方法 | |
JP3177274B2 (ja) | 情報処理装置 | |
JP2009237605A (ja) | Cadシステム | |
CN112367295A (zh) | 插件展示方法及装置、存储介质及电子设备 | |
CN112527422B (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 |