掌桥专利:专业的专利平台
掌桥专利
首页

应用画面的显示方法、装置、终端、投屏系统及介质

文献发布时间:2023-06-19 11:16:08


应用画面的显示方法、装置、终端、投屏系统及介质

技术领域

本申请实施例涉及投屏技术领域,特别涉及一种应用画面的显示方法、装置、终端、投屏系统及介质。

背景技术

设备投屏是一种将当前设备的屏幕镜像传输至其他设备,由其他设备进行同步显示的技术。

相关技术中,当使用设备A向设备B投屏时(通常设备B的屏幕尺寸大于设备A的屏幕尺寸),设备A将屏幕镜像画面传输至设备B,由设备B对屏幕镜像画面进行等比例放大后进行显示,保证设备B与设备A所显示画面的一致性,使后续设备A处的任何画面变化(比如从桌面启动应用、切换应用、应用内界面跳转等等)均可以在设备B处被查看到。

发明内容

本申请实施例提供了一种应用画面的显示方法、装置、终端、投屏系统及介质。所述技术方案如下:

一方面,本申请实施例提供了一种应用画面的显示方法,所述方法用于终端,所述方法包括:

获取重定向应用的应用启动信息,所述重定向应用是运行在所述终端中的应用;

基于重定向设备的目标屏幕分辨率,为所述重定向应用创建虚拟屏幕,所述重定向设备是用于显示所述重定向应用的设备,所述虚拟屏幕为所述目标屏幕分辨率,且所述虚拟屏幕独立于所述终端的物理屏幕;

获取为所述虚拟屏幕绘制的重定向应用画面,所述重定向应用画面是所述重定向应用的应用画面,且所述重定向应用画面的分辨率与所述目标屏幕分辨率相匹配;

向所述重定向设备发送所述重定向应用画面的图像数据,以使得所述重定向设备基于所述图像数据对所述重定向应用画面进行显示。

另一方面,本申请实施例提供了一种应用画面的显示装置,所述装置包括:

启动信息获取模块,用于获取重定向应用的应用启动信息,所述重定向应用是运行在终端中的应用;

创建模块,用于基于重定向设备的目标屏幕分辨率,为所述重定向应用创建虚拟屏幕,所述重定向设备是用于显示所述重定向应用的设备,所述虚拟屏幕为所述目标屏幕分辨率,且所述虚拟屏幕独立于所述终端的物理屏幕;

界面获取模块,用于获取为所述虚拟屏幕绘制的重定向应用画面,所述重定向应用画面是所述重定向应用的应用画面,且所述重定向应用画面的分辨率与所述目标屏幕分辨率相匹配;

图像数据发送模块,用于向所述重定向设备发送所述重定向应用画面的图像数据,以使得所述重定向设备基于所述图像数据对所述重定向应用画面进行显示。

另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的应用画面的显示方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的应用画面的显示方法。

另一方面,本申请实施例提供了一种投屏系统,所述投屏系统包括终端和重定向设备,所述终端与所述重定向设备之间建立有重定向连接,所述重定向连接用于进行数据传输;

所述终端,用于获取重定向应用的应用启动信息,所述重定向应用是运行在所述终端中的应用;

基于所述重定向设备的目标屏幕分辨率,为所述重定向应用创建虚拟屏幕,所述虚拟屏幕为所述目标屏幕分辨率,且所述虚拟屏幕独立于所述终端的物理屏幕;

获取为所述虚拟屏幕绘制的重定向应用画面,所述重定向应用画面是所述重定向应用的应用画面,且所述重定向应用画面的分辨率与所述目标屏幕分辨率相匹配;

向所述重定向设备发送所述重定向应用画面的图像数据;

所述重定向设备,用于基于所述图像数据对所述重定向应用画面进行显示。

另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的应用画面的显示方法。

本申请实施例中,当终端需要通过重定向设备进行重定向应用显示时,基于重定向设备的目标屏幕分辨率,为重定向应用创建独立于物理屏幕的虚拟屏幕,并为虚拟屏幕绘制与目标屏幕分辨率匹配的重定向应用画面,从而将重定向应用画面的图像数据发送至重定向设备,供重定向设备进行显示;相较于相关技术中的设备级投屏方案,本申请实施例采用应用级投屏方案,能够实现重定向应用画面与重定向设备的分辨率适配,从而避免因等比例缩放画面导致重定向设备显示时存在大面积黑边的问题,进一步提高了投屏显示效果。

附图说明

图1示出了本申请一个示例性实施例提供的实施环境的示意图;

图2示出了本申请一个示例性实施例提供的应用画面的显示方法的流程图;

图3是本申请一个示例性实施例示出的系统结构图;

图4示出了本申请另一个示例性实施例提供的应用画面的显示方法的流程图;

图5是本申请一个示例性实施例示出的终端触发启动重定向应用过程的界面示意图;

图6是本申请一个示例性实施例示出的重定向设备触发启动重定向应用过程的界面示意图;

图7是本申请一个示例性实施例示出的应用画面显示过程的实施示意图;

图8是本申请一个示例性实施例示出的投屏过程中应用通知消息显示过程的界面示意图;

图9示出了本申请另一个示例性实施例提供的应用画面的显示方法的流程图;

图10示出了触控显示屏与键鼠对应控制指令的映射关系;

图11示出了本申请一个实施例提供的应用画面的显示装置的结构框图;

图12示出了本申请一个示例性实施例提供的终端的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

请参考图1,其示出了本申请一个示例性实施例提供的实施环境的示意图,该实施环境中包括终端110和重定向设备120。

终端110是安装有重定向应用的电子设备。其中,该重定向应用可以是即时通信应用、社交类应用、视频播放应用或游戏类应用,该电子设备可以是智能手机、平板电脑或个人计算机等等(图1中以终端110为智能手机为例进行说明),本申请实施例并不对重定向应用以及电子设备的具体类型进行限定。

终端110与重定向设备120之间建立有线重定向连接或无线重定向连接。其中,终端110与重定向设备120可以通过数据线建立有线重定向连接,或者,终端110和重定向设备120可以通过接入同一网络以建立无线重定向连接(通过网络中的无线接入点进行数据交互)。

在一种可能的实施方式中,终端110和重定向设备120中均安装有投屏应用,终端110和重定向设备120运行该投屏应用后,即可通过该投屏应用建立重定向连接。

重定向设备120是用于显示重定向应用对应应用画面的电子设备(未安装重定向应用),该电子设备可以是智能电视、投影设备、个人计算机、便携式计算机等等(图1中以重定向设备120为个人计算机为例进行说明)。可选的,重定向设备120的屏幕尺寸大于终端110的屏幕尺寸,从而在投屏过程中达到更好的显示效果。

可选的,当需要对重定向应用进行投屏显示时,为了使重定向应用的应用画面能够适配重定向设备120的分辨率,从而避免因对应用画面进行等比例缩放造成大面积黑边的情况,终端110启动重定向应用前,首先基于重定向设备120的屏幕分辨率,为重定向应用创建虚拟屏幕111(不同于终端110的物理屏幕112的分辨率),以便重定向应用绘制针对该虚拟屏幕111的重定向应用画面(而非针对物理屏幕112)。

进一步的,终端110通过重定向连接将重定向应用的图像数据以及音频数据发送至重定向设备120,供重定向设备120进行图像显示以及音频播放。

在实现上述应用级投屏时,终端110相当于主机,而重定向设备120相当于显示器,且由于重定向应用绘制的应用画面显示在虚拟屏幕111中,因此重定向设备120显示重定向应用画面时,终端110的物理屏幕112可以显示重定向应用以外其他应用的应用画面。

如图1所示,重定向设备120显示游戏应用的游戏界面,而终端110的物理屏幕112中显示即时通信应用的聊天界面,两者之间互不影响。而采用设备级投屏方案时,由于是将终端的屏幕镜像画面发送至重定向设备,因此终端与重定向设备显示的画面完全一致,终端的任何画面变化(比如从桌面启动应用、切换应用、应用内界面跳转等等)均投屏至重定向设备,无法实现同时在终端和重定向应用中使用不同应用。

在一些可能的实施方式中,重定向设备120还可以包含输入设备,该输入设备可以为触摸显示屏、触控板、键盘、鼠标、摇杆等等,本实施例对此不作限定。重定向设备120显示重定向应用画面过程中,用户可以通过重定向设备120侧的输入设备对重定向应用画面中的元素进行控制,并通过重定向连接将输入设备触发的控制指令发送至终端110,以便终端110基于控制指令模拟出用户通过终端110对重定向应用进行控制的效果。

如图1所示,用户通过重定向设备120的键盘控制重定向应用画面中的虚拟人物移动时,重定向设备120将键盘触发的控制指令发送至终端110,由终端110对该控制指令进行响应,从而控制虚拟人物移动。

请参考图2,其示出了本申请一个示例性实施例提供的应用画面的显示方法的流程图。本实施例以该方法用于图1所示的终端为例进行说明,该方法包括如下步骤:

步骤201,获取重定向应用的应用启动信息,重定向应用是运行在终端中的应用。

可选的,该应用启动信息由终端从本地获取(即用户在终端侧指示启动的重定向应用),或者,该应用启动信息由终端从重定向设备处获取(即用户在重定向设备侧指示启动的重定向应用),该重定向设备是用于显示重定向应用的设备。

可选的,该应用启动信息中包含重定向应用的应用包名,终端即根据该应用包名确定待启动的重定向应用。

在一种可能的实施方式中,终端获取到应用启动信息后,检测是否安装有该重定向应用,若已安装,则执行下述步骤202,若未安装,则在完成重定向应用安装后执行步骤202。

步骤202,基于重定向设备的目标屏幕分辨率,为重定向应用创建虚拟屏幕,重定向设备是用于显示重定向应用的设备,虚拟屏幕为目标屏幕分辨率,且虚拟屏幕独立于终端的物理屏幕。

由于终端与重定向设备的屏幕分辨率可能存在差异(比如屏幕分辨率比例不同),若直接将终端侧物理屏幕显示的应用画面进行等比例缩放后传输至重定向设备,重定向设备侧显示缩放后的应用画面时,将会出现大面积黑边(通常位于应用画面上侧和下侧),影响用户观感。

因此为了使重定向设备侧显示的应用画面匹配重定向设备的屏幕分辨率,从而避免出现大面积黑边,本申请实施例中,终端为重定向应用创建一个与重定向设备的屏幕分辨率一致的虚拟屏幕,该虚拟屏幕后续即用于显示重定向应用的应用画面。关于虚拟屏幕的具体创建方式,下述实施例将进行详述。

其中,虚拟屏幕的目标屏幕分辨率可能不同于终端的物理屏幕的分辨率。比如,终端的物理屏幕的分辨率为2340*1080(13:6),而虚拟屏幕的目标屏幕分辨率为1920*1080(16:9)。

由于该虚拟屏幕独立于终端的物理屏幕,因此重定向应用过程中,终端的物理屏幕并不会显示重定向应用的应用画面(类似于后台运行重定向应用),相应的,终端的物理屏幕可以处于熄屏状态,可以开启并显示重定向应用以外其他应用的应用画面。

步骤203,获取为虚拟屏幕绘制的重定向应用画面,重定向应用画面是重定向应用的应用画面,且重定向应用画面的分辨率与目标屏幕分辨率相匹配。

重定向应用运行过程中为虚拟屏幕绘制重定向应用画面,其中,重定向应用画面的分辨率不同于为物理屏幕绘制的应用画面的分辨率。

示意性的,重定向应用为游戏应用时,当终端的物理屏幕的分辨率为2340*1080,且游戏应用的游戏画面显示在物理屏幕时,游戏应用绘制的游戏画面的分辨率为2340*1080;而当终端需要将游戏应用投屏至重定向设备,且重定向设备的目标屏幕分辨率为1920*1080时,游戏应用绘制的游戏画面的分辨率为1920*1080。

其中,重定向应用画面的分辨率与目标屏幕分辨率相匹配可以包括如下几种情况:1、重定向应用画面的分辨率与目标屏幕分辨率一致;2、重定向应用画面与目标屏幕分辨率的分辨率比例一致(比如重定向应用画面的分辨率为1920*1080,而目标屏幕分辨率的分辨率为3940*2160,分辨率比例均为16:9);3、重定向应用画面与目标屏幕分辨率的分辨率比例的比值小于比例阈值(比如重定向应用画面的分辨率比例为16:9,而目标屏幕分辨率的分辨率为16:10,两者分辨率比例的比值为1.1)。

在一种可能的实施方式中,终端按照预设采样频率(60FPS或120FPS)获取重定向应用为虚拟屏幕绘制的重定向应用画面,以便后续将重定向应用画面传输至重定向设备。其中,对于终端物理屏幕当前显示的应用画面,终端并不会获取为物理屏幕绘制的应用画面。

步骤204,向重定向设备发送重定向应用画面的图像数据,以使得重定向设备基于图像数据对重定向应用画面进行显示。

在一种可能的实施方式中,终端对获取到的重定向应用画面进行编码,得到编码后的图像数据,从而以视频流的形式向重定向设备传输该图像数据,相应的,重定向设备对接收到图像数据进行解码,从而还原得到重定向应用画面,并进行显示。

相较于将重定向应用画面的原始图像数据直接发送至重定向设备,通过对重定向应用画面的图像数据进行编码,有助于降低数据传输量,从而降低图像数据的传输延迟(尤其是通过无线重定向连接传输数据),进而降低重定向设备的显示延迟。

综上所述,本申请实施例中,当终端需要通过重定向设备进行重定向应用显示时,基于重定向设备的目标屏幕分辨率,为重定向应用创建独立于物理屏幕的虚拟屏幕,并为虚拟屏幕绘制与目标屏幕分辨率匹配的重定向应用画面,从而将重定向应用画面的图像数据发送至重定向设备,供重定向设备进行显示;相较于相关技术中的设备级投屏方案,本申请实施例采用应用级投屏方案,能够实现重定向应用画面与重定向设备的分辨率适配,从而避免因等比例缩放画面导致重定向设备显示时存在大面积黑边的问题,进一步提高了投屏显示效果。

在一种可能的实施方式中,如图3所示,终端系统中除了包含应用层31、系统服务(SystemServer)32、SurfaceFlinger 33以及硬件与驱动34外,应用层31之下还设置有重定向服务35。重定向过程中,重定向服务35首先通过SystemServer 32中的屏幕管理服务321创建虚拟屏幕,并通过活动管理服务322创建重定向应用对应的活动(Activity),通过窗口管理服务323创建相应的窗口。并且,由于需要将应用画面重定向至虚拟屏幕,因此需要请求SurfaceFlinger 33创建相应图层,用于接收以屏幕设备为单位合成的重定向应用画面。

此外,重定向过程中,重定向服务35还用于接收重定向设备发送的控制指令(由重定向设备侧的输入设备触发),并通过SystemServer 32中的输入管理服务324对该控制指令进行响应。同时,在重定向过程中,硬件和驱动34可以通过硬件合成显示在物理屏幕上的应用画面,并进行显示。

下面采用示例性的实施例对重定向过程进行详细说明。

请参考图4,其示出了本申请另一个示例性实施例提供的应用画面的显示方法的流程图。本实施例以该方法用于图1所示的终端为例进行说明,该方法包括如下步骤:

步骤401,获取重定向应用的应用启动信息,重定向应用是运行在终端中的应用。

在一种可能的实施方式中,终端和重定向设备中均安装有投屏应用,用户可以通过终端或重定向应用中安装的投屏应用启动重定向应用。

可选的,当通过终端中安装的投屏应用启动重定向应用时,终端显示应用选择界面,该应用选择界面中包含至少一个候选应用,且该候选应用包括终端中已经安装的应用以及终端中未安装的应用。响应于应用选择界面内的选择操作,终端将选中的候选应用确定为重定向应用,并获取重定向应用的应用启动信息。

示意性的,如图5所示,终端侧投屏应用的应用选择界面51中显示有若干候选应用对应的应用图标52,当接收到对“xx枪战”对应应用图标的选择操作时,终端将“xx枪战”确定为重定向应用,并获取“xx枪战”对应的应用包名。

可选的,当通过重定向设备中安装的投屏应用启动重定向应用时,重定向应用显示包含至少一个候选应用的应用选择界面,并在接收到对应用选择界面内的选择操作时,将选中的候选应用确定为重定向应用,并获取该重定向应用的应用启动信息。进一步的,重定向设备向终端发送包含该应用启动信息的应用启动请求,指示终端启动该重定向应用。

示意性的,如图6所示,重定向设备侧投屏应用的应用选择界面61中显示有若干候选应用对应的应用图标62,当接收到对“xx枪战”对应应用图标的选择操作时,重定向设备获取“xx枪战”的应用包名等应用启动信息,并通过重定向连接向终端发送包含应用启动信息的应用启动请求。

示意性的,如图7所示,终端中的重定向服务获取到应用启动信息后,通过启动信息解析模块701对应用启动信息进行解析,获取应用启动Activity信息,并将该信息封装成系统指定格式,用于后续启动Activity。

步骤402,通过重定向服务向屏幕管理服务发送虚拟屏幕创建请求,虚拟屏幕创建请求中包含目标屏幕分辨率,屏幕管理服务用于基于目标屏幕分辨率为重定向应用创建虚拟屏幕。

终端中SystemServer提供的服务包括屏幕管理服务(DisplayManagerServic e),该服务用于管理显示的生命周期。本申请实施例中,由于需要实现应用级投屏,因此在一种可能的实施方式中,在启动重定向应用之前,需要通过重定向服务请求屏幕管理服务为重定向应用创建虚拟屏幕(virtualdisplay)。其中,在请求创建虚拟屏幕时,重定向服务向屏幕管理服务发送的请求中即包含重定向设备的目标屏幕分辨率。

相应的,屏幕管理服务接收到该请求后,创建目标屏幕分辨率的虚拟屏幕,并将该虚拟屏幕反馈至重定向服务。

示意性的,如图7所示,重定向服务通过屏幕管理模块702向屏幕管理服务703发送虚拟屏幕创建请求,屏幕管理服务703完成虚拟屏幕创建后,向屏幕管理模块702反馈创建的虚拟屏幕。

步骤403,通过重定向服务向活动管理服务发送活动运行消息,活动运行消息中包含虚拟屏幕的屏幕信息;活动管理服务用于基于活动运行消息指示重定向应用创建目标活动,目标活动用于请求窗口管理服务创建目标窗口,窗口管理服务用于请求为目标窗口创建目标图层,目标图层用于接收重定向应用画面。

完成虚拟屏幕创建后,重定向服务进一步基于应用启动信息完成重定向应用启动。本实施例中,由于重定向应用画面并非显示在物理屏幕,因此重定向服务获取到虚拟屏幕后,需要向活动管理服务(ActivityManagerService)发送包含虚拟屏幕对应屏幕信息的活动运行消息,确保重定向应用画面重定向至虚拟屏幕,而非默认的物理屏幕。其中,该屏幕信息可以是虚拟屏幕的屏幕标识,且当存在多个虚拟屏幕时,不同虚拟屏幕对应不同屏幕标识。

活动管理服务接收到活动运行消息后,即根据活动运行消息指示应用层的重定向应用创建目标活动,并由创建的目标活动请求窗口管理服务(WindowsManagerService)请求(SurfaceFlinger)为目标窗口创建目标图层(不同于接收物理屏幕对应的画面的图层),以便后续通过该目标图层接收为虚拟屏幕绘制的重定向应用画面。

示意性的,如图7所示,屏幕管理模块702获取到虚拟屏幕后,将虚拟屏幕的屏幕信息注入活动运行请求中,并将活动运行请求发送至活动管理服务704,由活动管理服务704请求应用层的重定向应用创建活动705。活动705创建完成后,进一步请求窗口管理服务706创建目标窗口。窗口管理服务706完成窗口创建后,请求SurfaceFlinger为目标窗口创建图层707,以便SurfaceFlinger以屏幕设备(本实施例中即虚拟屏幕)708为单位在图层707上绘制合成重定向应用画面。

步骤404,通过重定向应用确定与目标屏幕分辨率匹配的目标画面显示资源,并基于目标画面显示资源绘制重定向应用画面。

关于重定向应用画面的绘制过程,为了适配不同分辨率的终端,重定向应用中设置有至少两种候选屏幕分辨率对应的候选画面显示资源(基于不同画面显示资源绘制出的应用画面会呈现出不同的显示效果,比如更广的画面视角),该画面显示资源可以包括图片资源和控件布局文件资源等等。由于在启动应用过程,将虚拟屏幕的屏幕信息传递给了重定向应用,因此重定向应用可以基于屏幕信息,(从候选屏幕分辨率中)确定与目标屏幕分辨率匹配的目标画面显示资源,从而基于目标画面显示资源绘制重定向应用画面,提高重定向设备中应用画面的显示效果。

在一种可能的实施方式中,若存在与目标屏幕分辨率一致的候选屏幕分辨率(比如分辨率均为1920*1080),则将该候选屏幕分辨率对应的候选画面显示资源确定为目标画面显示资源。

若不存在与目标屏幕分辨率一致的候选屏幕分辨率,且存在与目标屏幕分辨率的分辨率比例一致的候选屏幕分辨率(比如分辨率比例16:9),则将该候选屏幕分辨率对应的候选画面显示资源确定为目标画面显示资源。

若不存在与目标屏幕分辨率的分辨率比例一致的候选屏幕分辨率,则确定与目标屏幕分辨率的分辨率比例最接近的候选屏幕分辨率,并将该候选屏幕分辨率对应的候选画面显示资源确定为目标画面显示资源。

可选的,重定向应用绘制重定向应用画面过程中,通过目标活动通知SurfaceFlinger存在图层更新,由SurfaceFlinger以屏幕设备为单位,在创建的目标图层中合成重定向应用画面。

在一个示意性的例子中,重定向应用为游戏应用且设置有1920*1080、2340*1080以及1080*720三种分辨率对应的画面显示资源。当直接通过终端的物理屏幕显示游戏画面时,由于物理屏幕的分辨率为2340*1080,因此游戏应用采用2340*1080对应的画面显示资源绘制游戏画面;而通过屏幕分辨率为1920*1080的重定向设备投屏显示游戏画面时,游戏应用采用1920*1080对应的画面显示资源绘制游戏画面。

步骤405,通过重定向服务,从目标图层中获取为虚拟屏幕绘制的重定向应用画面。

由于设置了用于接收重定向应用画面的目标图层,因此重定向服务可以从该目标图层中获取为重定向应用画面。可选的,重定向服务对获取到的重定向应用画面进行编码,后续将编码后得到的图像数据发送至重定向设备。

示意性的,如图7所示,重定向服务中的图像编码模块709从屏幕设备708处获取重定向应用画面,并对重定向应用画面进行编码。

步骤406,向重定向设备发送重定向应用画面的图像数据,以使得重定向设备基于图像数据对重定向应用画面进行显示。

本步骤的实施方式可以参考上述步骤204,本实施例在此不再赘述.

示意性的,如图7所示,图像编码模块709将图像输出发送至网络连接模块710,由终端侧的网络连接模块710向重定向设备侧的网络连接模块711发送图像数据。重定向设备接收到图像数据后,通过图像解码模块712解码得到重定向应用画面,从而通过图像渲染模块713进行渲染显示。

步骤407,提取重定向应用的音频数据。

为了避免终端侧运行的其他应用的应用音频或系统音频对重定向应用造成干扰,本实施例中,重定向服务获取重定向应用画面的同时,对终端音频进行音频分离,从而提取重定向应用的音频数据。

步骤408,向重定向设备发送音频数据,以使得重定向设备基于音频数据播放重定向应用的应用音频。

进一步的,终端通过重定向连接向重定向设备发送音频数据,由重定向设备播放重定向应用的应用音频(终端将不会播放重定向应用的音频),实现终端与重定向设备上应用音频的独立输出,互不干扰。

可选的,在发送图像数据和音频数据时,终端需要对两者进行同步(比如设置同步时间戳),保证重定向设备侧的音画同步。

本实施例中,终端在启动重定向应用之前通过重定向服务请求屏幕管理服务创建虚拟屏幕,并在启动应用的活动运行信息中添加虚拟屏幕的屏幕信息,使重定向应用能够采用与虚拟屏幕对应屏幕分辨率匹配的画面显示资源进行应用画面绘制,提高了重定向画面的绘制准确性。

此外,本实施例中,终端通过提取重定向应用对应的音频数据,并将音频数据发送至重定向设备,实现终端与重定向设备侧应用音频的分离,避免终端中其他音频对重定向应用的音频造成干扰。

上述实施例中,以终端启动单个重定向应用为例进行说明,在一些实施例中,当启动n个重定向应用时(可以分n次启动),终端基于重定向设备的目标屏幕分辨率,为不同重定向应用创建不同虚拟屏幕,即共创建n个虚拟屏幕。相应的,每个虚拟屏幕对应各自的窗口和图层。终端将各个重定向应用对应的重定向应用画面发送至重定向设备后,重定向设备可以在多个重定向应用画面之间进行切换,从而处理不同的事务。本实施例在此不做赘述。

由于虚拟屏幕被重定向应用独占,因此当终端接收到应用选择界面以外的应用启动操作时,该应用启动操作并不会影响重定向设备显示的重定向应用画面,而是由终端通过物理屏幕显示该应用启动操作所指示应用的应用画面。

在一个示意性的例子中,用户在终端侧投屏应用的应用选择界面中选择启动“xx枪战”后,重定向设备显示“xx枪战”的游戏界面,而终端的物理屏幕则继续显示应用选择界面。当用户将投屏应用切换至后台,并点击系统桌面中“xx聊天”对应的应用图标后,终端显示“xx聊天”的聊天界面,而重定向设备则继续显示“xx枪战”的游戏界面。用户可以在游戏过程中进行聊天,两者互不干扰,用户无需在同一设备的两个应用之间进行来回切换。

此外,在另一种可能的应用场景下,当终端接收到应用通知消息,检测该应用通知消息所处的应用,若该应用通知消息不属于重定向应用,该应用通知消息则不会显示在重定向应用画面内,而是由终端通过物理屏幕显示该应用通知消息。

在一个示意性的例子中,如图8所示,用户在终端801侧投屏应用的应用选择界面中选择启动“xx枪战”后,重定向设备802显示“xx枪战”的游戏界面,且为了降低终端功耗,用户将终端801熄屏。当终端801中的“xx聊天”接收到通知消息时,终端801亮屏并显示该通知消息,而重定向设备802则继续显示“xx枪战”的游戏界面,从而避免重定向应用外应用通知消息造成的干扰,提高了投屏过程中的沉浸式体验。

关于终端与重定向设备间建立重定向连接具体方式,在一种可能的实施方式中,当终端通过数据线与重定向设备建立有线重定向连接,相应的,终端即通过有线重定向连接获取重定向设备的目标屏幕分辨率。

可选的,终端与重定向设备之间通过数据线相连,且终端和重定向设备均启动投屏应用时,投屏应用即在终端与重定向设备之间建立有线重定向连接。

在另一种可能的实施方式中,当终端与重定向设备位于同一网络时,终端获取重定向设备在网络中的网络地址,从而基于该网络地址与重定向设备建立无线重定向连接,相应的,终端即通过无线重定向连接获取重定向设备的目标屏幕分辨率。其中,该网络信息可以为重定向设备在网络中的IP地址。

可选的,重定向设备的网络地址可以通过手动输入的方式获取,或者,重定向设备生成并显示包含该网络地址的图形码(比如二维码),由终端扫描该图形码并从中解析得到网络地址。

本申请实施例中,重定向设备除了具有显示功能外,还具有对重定向应用的控制功能,其中,该控制功能可以通过重定向设备的输入设备实现,该输入设备可以是键盘、鼠标、触控板、触控显示屏、摇杆等等。在图2的基础上,如图9所示,步骤204之后还包括如下步骤。

步骤205,接收重定向设备发送的第一控制指令,第一控制指令由重定向设备对第二控制指令转换得到,第二控制指令是重定向设备侧输入设备所触发的指令,第一控制指令用于模拟终端侧输入设备所触发的指令。

由于重定向设备与终端的输入设备不同,比如终端的输入设备为触控显示屏,而重定向设备的输入设备则是键盘鼠标,因此重定向设备通过输入设备触发的控制指令可能无法被终端直接识别。为了保证重定向设备反向控制终端时的准确性,在一种可能的实施方式中,投屏应用中设置有不同输入设备对应控制指令之间的映射关系。

示意性的,图10示出了触控显示屏与键鼠对应控制指令的映射关系。其中,键盘上WASD键触发的控制指令对应拖动方向轮盘1001时触发控制指令,鼠标左键触发的控制指令对应点击开火控件1002时触发的控制指令,鼠标右键触发的控制指令对应点击瞄准控件1003时触发的控制指令,键盘上空格键触发的控制指令对应点击跳跃控件1004时触发控制指令。

需要说明的时,该映射关系可以为应用默认,也可以由用户进行自定义设置。

重定向设备接收到输入设备触发的控制指令后,基于上述映射关系将该控制指令转换为终端所能识别的控制指令,并通过重定向连接将转换后的控制指令发送至终端,以便后续终端根据转换后的控制指令模拟出人为操作终端侧输入设备的效果。

步骤206,基于第一控制指令控制重定向应用。

相应的,终端基于接收到的控制指令,对重定向应用进行反向控制,并将控制后发生变化的重定向应用界面传输至重定向设备,使用户能够观察到控制效果。

本实施例中,重定向设备获取到自身输入设备触发的控制指令后,将该控制指令转化为终端所能识别的控制指令,并将转换后的控制指令发送至终端,实现对重定向应用的反向控制,从而克服因终端与重定向设备的输入设备不同导致反向控制异常的问题,提高了反向控制的准确性。

综合上述各个实施例,本申请实施例提供的应用级投屏方案相较于设备级投屏方案的优势如表一所示。

表一

请参考图11,其示出了本申请一个实施例提供的应用画面的显示装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:

启动信息获取模块1101,用于获取重定向应用的应用启动信息,所述重定向应用是运行在终端中的应用;

创建模块1102,用于基于重定向设备的目标屏幕分辨率,为所述重定向应用创建虚拟屏幕,所述虚拟屏幕为所述目标屏幕分辨率,且所述虚拟屏幕独立于所述终端的物理屏幕;

界面获取模块1103,用于获取为所述虚拟屏幕绘制的重定向应用画面,所述重定向设备是用于显示所述重定向应用的设备,所述重定向应用画面是所述重定向应用的应用画面,且所述重定向应用画面的分辨率与所述目标屏幕分辨率相匹配;

图像数据发送模块1104,用于向所述重定向设备发送所述重定向应用画面的图像数据,以使得所述重定向设备基于所述图像数据对所述重定向应用画面进行显示。

可选的,所述终端运行有重定向服务;

所述创建模块1102,具体用于:

通过所述重定向服务向屏幕管理服务发送虚拟屏幕创建请求,所述虚拟屏幕创建请求中包含所述目标屏幕分辨率,所述屏幕管理服务用于基于所述目标屏幕分辨率为所述重定向应用创建所述虚拟屏幕。

可选的,所述装置包括:

应用启动模块,用于通过所述重定向服务向活动管理服务发送活动运行消息,所述活动运行消息中包含所述虚拟屏幕的屏幕信息;所述活动管理服务用于基于所述活动运行消息指示所述重定向应用创建目标活动,所述目标活动用于请求窗口管理服务创建目标窗口,所述窗口管理服务用于请求为所述目标窗口创建目标图层,所述目标图层用于接收所述重定向应用画面;

所述界面获取模块1103,具体用于:

通过所述重定向服务,从所述目标图层中获取为所述虚拟屏幕绘制的所述重定向应用画面。

可选的,所述重定向应用中设置有至少两种候选屏幕分辨率对应的候选画面显示资源;

所述装置还包括:绘制模块;

所述绘制模块,用于在获取为所述虚拟屏幕绘制的重定向应用画面之前,通过所述重定向应用确定与所述目标屏幕分辨率匹配的目标画面显示资源,并基于所述目标画面显示资源绘制所述重定向应用画面。

可选的,所述创建模块1102,还用于:

响应于存在n个所述重定向应用,基于所述目标屏幕分辨率,为n个所述重定向应用创建n个虚拟屏幕,n为大于1的整数,且不同重定向应用对应不同虚拟屏幕。

可选的,所述启动信息获取模块1101,包括:

第一启动信息获取单元,用于显示应用选择界面,所述应用选择界面中包含至少一个候选应用;响应于所述应用选择界面内的选择操作,将选中的候选应用确定为所述重定向应用,并获取所述重定向应用的应用启动信息;

或者,

第二启动信息获取单元,用于接收所述重定向设备发送的应用启动请求,所述应用启动请求中包含所述重定向应用的应用启动信息,所述应用启动请求由所述重定向设备接收到应用选择界面内的选择操作时发送,所述应用选择界面中包含至少一个候选应用。

可选的,所述装置还包括:

第一显示模块,用于响应于所述应用选择界面外的应用启动操作,通过所述物理屏幕显示所述应用启动操作所指示应用的应用画面。

可选的,所述装置还包括:

第二显示模块,用于通过所述重定向连接向所述重定向设备发送所述重定向应用画面的图像数据之后,响应于接收到应用通知消息,且所述应用通知消息不属于所述重定向应用,通过所述物理屏幕显示所述应用通知消息。

可选的,所述装置还包括:

第一分辨率获取模块,用于与所述重定向设备建立有线重定向连接;通过所述有线重定向连接获取所述重定向设备的所述目标屏幕分辨率;

或者,

第二分辨率获取模块,用于获取所述重定向设备的网络地址,所述终端与所述重定向设备位于同一网络中;基于所述网络地址与所述重定向设备建立无线重定向连接;通过所述无线重定向连接获取所述重定向设备的所述目标屏幕分辨率。

可选的,所述装置还包括:

音频提取模块,用于提取所述重定向应用的音频数据;

音频数据发送模块,用于向所述重定向设备发送所述音频数据,以使得所述重定向设备基于所述音频数据播放所述重定向应用的应用音频。

可选的,所述装置还包括:

控制指令接收模块,用于接收所述重定向设备发送的第一控制指令,所述第一控制指令由所述重定向设备对第二控制指令转换得到,所述第二控制指令是重定向设备侧输入设备所触发的指令,所述第一控制指令用于模拟所述终端侧输入设备所触发的指令;

控制模块,用于基于所述第一控制指令控制所述重定向应用。

综上所述,本申请实施例中,当终端需要通过重定向设备进行重定向应用显示时,基于重定向设备的目标屏幕分辨率,为重定向应用创建独立于物理屏幕的虚拟屏幕,并为虚拟屏幕绘制与目标屏幕分辨率匹配的重定向应用画面,从而将重定向应用画面的图像数据发送至重定向设备,供重定向设备进行显示;相较于相关技术中的设备级投屏方案,本申请实施例采用应用级投屏方案,能够实现重定向应用画面与重定向设备的分辨率适配,从而避免因等比例缩放画面导致重定向设备显示时存在大面积黑边的问题,进一步提高了投屏显示效果。

上述装置实施例中,各个模块或单元的功能实施过程可以参考上述方法实施例,本实施例在此不再赘述。

请参考图12,其示出了本申请一个示例性实施例提供的终端的结构方框图。该终端1200可以是智能手机、平板电脑、个人计算机等。本申请中的终端1200可以包括一个或多个如下部件:处理器1210和存储器1220。

处理器1210可以包括一个或者多个处理核心。处理器1210利用各种接口和线路连接整个终端1200内的各个部分,通过运行或执行存储在存储器1220内的指令、程序、代码集或指令集,以及调用存储在存储器1220内的数据,执行终端1200的各种功能和处理数据。可选地,处理器1210可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1210可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1210中,单独通过一块芯片进行实现。

存储器1220可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1220包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1220可用于存储指令、程序、代码、代码集或指令集。存储器1220可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端1200的使用所创建的数据(比如音频数据、电话本)等。

终端1200还设置有显示屏1230,本申请实施例中,显示屏1230用于对虚拟屏幕以外画面进行显示,而虚拟屏幕内的画面则通过重定向设备进行显示。可选的,该显示屏1230还具有触控功能,用于接收并响应用户的触控操作。

可选的,终端1200还设置有通信组件,该通信组件用于通过有线或无线方式与外部设备建立数据通信连接。比如,该通信组件可以为WiFi组件,从而通过WiFi组件与重定向设备建立无线重定向连接。

除此之外,本领域技术人员可以理解,上述附图所示出的终端1200的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1200中还包括麦克风、传感器、摄像头、电源等部件,在此不再赘述。

本申请实施例还提供了一种投屏系统,该投屏系统包括终端和重定向设备,终端与重定向设备之间建立有重定向连接,重定向连接用于进行数据传输;

终端,用于获取重定向应用的应用启动信息,所述重定向应用是运行在所述终端中的应用;

基于所述重定向设备的目标屏幕分辨率,为所述重定向应用创建虚拟屏幕,所述虚拟屏幕为所述目标屏幕分辨率,且所述虚拟屏幕独立于所述终端的物理屏幕;

获取为所述虚拟屏幕绘制的重定向应用画面,所述重定向应用画面是所述重定向应用的应用画面,且所述重定向应用画面的分辨率与所述目标屏幕分辨率相匹配;

向所述重定向设备发送所述重定向应用画面的图像数据;

所述重定向设备,用于基于所述图像数据对所述重定向应用画面进行显示。

其中,终端实现应用级重定向投屏的过程可以详见上述方法实施例,本实施例在此不再赘述。

本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的应用画面的显示方法。

本申请实施例提供了还一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的应用画面的显示方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 应用画面的显示方法、装置、终端、投屏系统及介质
  • 应用程序分身投屏显示方法、装置、终端设备及存储介质
技术分类

06120112860021