可左右滑动选省市

一种投屏方法及装置实用新型专利

更新时间:2024-07-01
一种投屏方法及装置实用新型专利 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:一种投屏方法及装置

专利类型:实用新型专利

专利申请号:CN202210857837.2

专利申请(专利权)人:北京字跳网络技术有限公司
权利人地址:北京市海淀区紫金数码园4号楼2层0207

专利发明(设计)人:杜成立,任思锜,夏正冬

专利摘要:本申请公开了一种投屏方法,投屏设备的中间模块可以利用投屏设备的操作系统对屏幕流数据进行解码,得到解码数据。另外,中间模块可以获取与屏幕流数据对应的画布的信息。中间模块获取画布的信息之后,可以将画布的信息传递给操作系统,由操作系统基于画布的信息和解码数据,在投屏设备的屏幕上渲染解码数据。由此可见,利用本方案,可以由投屏设备的操作系统基于屏幕流数据对应的画布的信息以及解码数据,在投屏设备的屏幕上渲染解码数据,而操作系统在屏幕上渲染解码数据时,其分辨率与屏幕流的分辨率相匹配。因此,利用本方案,能够提升投屏设备的屏幕上显示的内容的清晰度。

主权利要求:
1.一种投屏方法,其特征在于,所述方法包括:
投屏设备的中间模块利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据,其中:所述投屏设备支持高清渲染,用于指示所述投屏设备直接使用所述操作系统中的硬件驱动模块进行渲染;
所述中间模块获取与所述屏幕流数据对应的画布的信息;
所述中间模块将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,使用所述硬件驱动模块在所述投屏设备的屏幕上渲染所述解码数据,其中,所述操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相匹配。
2.根据权利要求1所述的方法,其特征在于,所述中间模块获取与所述屏幕流数据对应的画布的信息,包括:所述中间模块获取由所述投屏设备的业务模块发送的所述画布的信息,所述业务模块为与投屏业务相关的模块,其中,所述画布是所述业务模块响应于用户触发的投屏操作而创建的。
3.根据权利要求2所述的方法,其特征在于,所述画布的信息,是所述业务模块在创建所述画布时设置的。
4.根据权利要求2所述的方法,其特征在于,所述画布的信息,是所述业务模块在接收到所述中间模块发送的画布调整通知消息而设置的,其中,所述中间模块在所述屏幕流数据显示的位置和/或大小发生改变时,向所述业务模块发送所述画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述中间模块接收所述操作系统发送的第一通知消息,所述第一通知消息用于指示屏幕流数据渲染结束;
所述中间模块基于所述第一通知消息向业务模块发送第二通知消息,所述第二通知消息用于通知所述业务模块销毁所述画布。
6.根据权利要求1所述的方法,其特征在于,所述中间模块获取与所述屏幕流数据对应的画布的信息,包括:所述中间模块在确定所述投屏设备支持高清渲染的情况下,获取与所述屏幕流数据对应的画布的信息。
7.一种投屏方法,其特征在于,所述方法包括:
投屏设备的业务模块响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块,其中:所述投屏设备支持高清渲染,用于指示所述投屏设备直接使用操作系统中的硬件驱动模块进行渲染;
所述业务模块通过中间模块将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,使用所述硬件驱动模块在所述投屏设备的屏幕上渲染所述解码数据,其中,所述操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相匹配。
8.根据权利要求7所述的方法,其特征在于,所述画布的信息,是所述业务模块在创建所述画布时设置的。
9.根据权利要求7所述的方法,其特征在于,所述业务模块通过如下方式设置所述画布的信息:所述业务模块通过所述中间模块监听所述屏幕流数据显示的位置和/或大小;
所述业务模块在在所述屏幕流数据显示的位置和/或大小发生改变时,接收所述中间模块发送的画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小;
所述业务模块基于所述画布调整通知消息中携带的所述改变后的屏幕流数据显示的位置以及大小,设置所述画布的信息。
10.一种投屏装置,其特征在于,应用于投屏设备的中间模块,所述装置包括:解码单元,用于利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据,其中:所述投屏设备支持高清渲染,用于指示所述投屏设备直接使用所述操作系统中的硬件驱动模块进行渲染;
获取单元,用于获取与所述屏幕流数据对应的画布的信息;
第一发送单元,用于将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,使用所述硬件驱动模块在所述投屏设备的屏幕上渲染所述解码数据,其中,所述操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相匹配。
11.一种投屏装置,其特征在于,应用于投屏设备的业务模块,所述装置包括:创建单元,用于响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块,其中:所述投屏设备支持高清渲染,用于指示所述投屏设备直接使用操作系统中的硬件驱动模块进行渲染;
发送单元,用于通过中间模块将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,使用所述硬件驱动模块在所述投屏设备的屏幕上渲染所述解码数据,其中,所述操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相匹配。
12.一种设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示设备执行如权利要求1至9中任一项所述的方法。 说明书 : 一种投屏方法及装置技术领域[0001] 本申请涉及计算机技术领域,特别是涉及一种投屏方法及装置。背景技术[0002] 在投屏场景中,用户可以将共享设备的屏幕上显示的内容投屏至投屏设备的屏幕上显示。其中,投屏设备的屏幕上显示的内容的清晰度,受到投屏设备的屏幕的分辨率以及接收到的投屏视频流的分辨率的影响。[0003] 目前,在投屏场景中,即使投屏设备的屏幕的分辨率高于所述投屏视频流的分辨率,投屏设备的屏幕上显示的内容的分辨率也无法达到所述投屏视频流的分辨率。换言之,投屏设备的屏幕上显示的内容的清晰度不是很高,无法与所述投屏视频流的分辨率相匹配。[0004] 因此,急需一种方案,能够提升所述投屏设备的屏幕上显示的内容的清晰度。发明内容[0005] 为了解决或者至少部分解决上述技术问题,本申请实施例提供了一种投屏方法及装置。[0006] 第一方面,本申请实施例提供了一种投屏方法,所述方法包括:[0007] 投屏设备的中间模块利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据;[0008] 所述中间模块获取与所述屏幕流数据对应的画布的信息;[0009] 所述中间模块将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0010] 可选的,所述中间模块获取与所述屏幕流数据对应的画布的信息,包括:[0011] 所述中间模块获取由所述投屏设备的业务模块发送的所述画布的信息,所述业务模块为与投屏业务相关的模块,其中,所述画布是所述业务模块响应于用户触发的投屏操作而创建的。[0012] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0013] 可选的,所述画布的信息,是所述业务模块在接收到所述中间模块发送的画布调整通知消息而设置的,其中,所述中间模块在所述屏幕流数据显示的位置和/或大小发生改变时,向所述业务模块发送所述画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小。[0014] 可选的,所述方法还包括:[0015] 所述中间模块接收所述操作系统发送的第一通知消息,所述第一通知消息用于指示屏幕流数据渲染结束;[0016] 所述中间模块基于所述第一通知消息向所述业务模块发送第二通知消息,所述第二通知消息用于通知所述业务模块销毁所述画布。[0017] 可选的,所述中间模块获取与所述屏幕流数据对应的画布的信息,包括:[0018] 所述中间模块在确定所述投屏设备支持高清渲染的情况下,获取与所述屏幕流数据对应的画布的信息,所述投屏设备支持高清渲染,用于指示所述投屏设备支持不使用所述操作系统的图形处理器GPU而直接使用所述操作系统中的硬件驱动模块进行渲染。[0019] 第二方面,本申请实施例提供了一种投屏方法,所述方法包括:[0020] 投屏设备的业务模块响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块;[0021] 所述业务模块通过中间模块将所述画布的信息传递给操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0022] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0023] 可选的,所述业务模块通过如下方式设置所述画布的信息:[0024] 所述业务模块通过所述中间模块监听所述屏幕流数据显示的位置和/或大小;[0025] 所述业务模块在在所述屏幕流数据显示的位置和/或大小发生改变时,接收所述中间模块发送的画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小;[0026] 所述业务模块基于所述画布调整通知消息中携带的所述改变后的屏幕流数据显示的位置以及大小,设置所述画布的信息。[0027] 第三方面,本申请实施例提供了一种投屏装置,应用于投屏设备的中间模块,所述装置包括:[0028] 解码单元,用于利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据;[0029] 获取单元,用于获取与所述屏幕流数据对应的画布的信息;[0030] 第一发送单元,用于将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0031] 可选的,所述获取单元,用于:[0032] 获取由所述投屏设备的业务模块发送的所述画布的信息,所述业务模块为与投屏业务相关的模块,其中,所述画布是所述业务模块响应于用户触发的投屏操作而创建的。[0033] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0034] 可选的,所述画布的信息,是所述业务模块在接收到所述中间模块发送的画布调整通知消息而设置的,其中,所述中间模块在所述屏幕流数据显示的位置和/或大小发生改变时,向所述业务模块发送所述画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小。[0035] 可选的,所述装置还包括:[0036] 接收单元,用于接收所述操作系统发送的第一通知消息,所述第一通知消息用于指示屏幕流数据渲染结束;[0037] 第二发送单元,用于基于所述第一通知消息向所述业务模块发送第二通知消息,所述第二通知消息用于通知所述业务模块销毁所述画布。[0038] 可选的,所述获取单元,用于:[0039] 在确定所述投屏设备支持高清渲染的情况下,获取与所述屏幕流数据对应的画布的信息,所述投屏设备支持高清渲染,用于指示所述投屏设备支持不使用所述操作系统的图形处理器GPU而直接使用所述操作系统中的硬件驱动模块进行渲染。[0040] 第四方面,本申请实施例提供了一种投屏装置,应用于投屏设备的业务模块,所述装置包括:[0041] 创建单元,用于响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块;[0042] 发送单元,用于通过中间模块将所述画布的信息传递给操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0043] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0044] 可选的,所述业务模块通过如下方式设置所述画布的信息:[0045] 所述业务模块通过所述中间模块监听所述屏幕流数据显示的位置和/或大小;[0046] 所述业务模块在在所述屏幕流数据显示的位置和/或大小发生改变时,接收所述中间模块发送的画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小;[0047] 所述业务模块基于所述画布调整通知消息中携带的所述改变后的屏幕流数据显示的位置以及大小,设置所述画布的信息。[0048] 第五方面,本申请实施例提供了一种设备,所述设备包括处理器和存储器;[0049] 所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行以上第一方面任一项所述的方法,或者,以使得所述设备执行以上第二方面任一项所述的方法。[0050] 第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行以上第一方面任一项所述的方法,或者,所述指令指示设备执行以上第二方面任一项所述的方法。[0051] 第七方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上第一方面任一项所述的方法,或者,使得计算机执行以上第二方面任一项所述的方法。[0052] 与现有技术相比,本申请实施例具有以下优点:[0053] 本申请实施例提供了一种投屏方法,该方法可以应用于投屏设备的中间模块,所述投屏设备的中间模块可以利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据。另外,所述中间模块可以获取与所述屏幕流数据对应的画布的信息。所述中间模块获取所述画布的信息之后,可以将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。由此可见,利用本方案,可以由投屏设备的操作系统基于屏幕流数据对应的画布的信息以及解码数据,在所述投屏设备的屏幕上渲染所述解码数据,而所述操作系统在所述屏幕上渲染所述解码数据时,其分辨率与屏幕流的分辨率相匹配,例如,在屏幕分辨率不低于所述屏幕流的分辨率的情况下,操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相同。因此,利用本方案,能够提升所述投屏设备的屏幕上显示的内容的清晰度。[0054] 本申请实施例提供了一种投屏方法。所述方法可以应用于投屏设备的业务模块,所述业务模块为与投屏业务相关的模块。在一个示例中,用户触发投屏操作之后,所述业务模块可以响应于所述投屏操作,创建画布。进一步地,所述业务模块可以通过中间模块将所述画布的信息传递给操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。由此可见,利用本方案,可以由投屏设备的操作系统基于屏幕流数据对应的画布的信息以及解码数据,在所述投屏设备的屏幕上渲染所述解码数据,而所述操作系统在所述屏幕上渲染所述解码数据时,所渲染的画面的分辨率与屏幕流的分辨率相匹配,例如,在屏幕分辨率不低于所述屏幕流的分辨率的情况下,操作系统在所述屏幕上渲染所述解码数据时,其分辨率与屏幕流的分辨率相同。因此,利用本方案,能够提升所述投屏设备的屏幕上显示的内容的清晰度。附图说明[0055] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0056] 图1为本申请实施例提供的一种投屏方法的流程示意图;[0057] 图2为本申请实施例提供的又一种投屏方法的流程示意图;[0058] 图3为本申请实施例提供的一种投屏方法的信令交互图;[0059] 图4为本申请实施例提供的一种投屏装置的结构示意图;[0060] 图5为本申请实施例提供的又一种投屏装置的结构示意图。具体实施方式[0061] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0062] 本申请的发明人经过研究发现,目前,在投屏场景中,即使投屏设备的屏幕的分辨率高于所述投屏视频流的分辨率,投屏设备的屏幕上显示的内容的分辨率也无法达到所述投屏视频流的分辨率。例如,投屏设备的屏幕的分辨率为4k,而投屏视频流的分辨率为2k,但是投屏设备将投屏视频流渲染至所述屏幕上时,所显示的分辨率却不能达到2k。其原因在于:[0063] 目前,投屏设备对投屏视频流进行渲染时,是利用用户界面(userinterface,UI)显示层对所述投屏视频流进行渲染的,而UI显示层对投屏视频流进行渲染时,对所渲染的画面的分辨率有一定的限制。例如,将所渲染的画面的分辨率限制在1080p,即使投屏视频流的分辨率高于1080p,UI显示层在屏幕上渲染的画面的分辨率,也只能达到1080p。[0064] 为了解决上述问题,本申请实施例提供了一种投屏方法及装置。[0065] 下面结合附图,详细说明本申请的各种非限制性实施方式。[0066] 示例性方法[0067] 参见图1,该图为本申请实施例提供的一种投屏方法的流程示意图。在本实施例中,图1所示的投屏方法,可以应用于投屏设备的中间模块,其中,所述投屏设备的中间模块,可以是所述投屏设备中的一个功能模块。[0068] 在一个示例中,图1所示的方法例如可以包括以下步骤:S101‑S103。[0069] S101:中间模块利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据。[0070] 本申请实施例不具体限定所述操作系统,在一个示例中,所述操作系统例如可以是安卓操作系统。[0071] 在本申请实施例中,投屏设备接收到的屏幕流数据,可以是经过压缩之后的数据。因此,在所述投屏设备渲染所述屏幕流数据之前,可以对所述屏幕流数据进行解码,得到解码数据。在本申请实施例中,可以由所述投屏设备的操作系统对所述屏幕流数据进行解码。[0072] 在一个示例中,所述中间模块可以向所述操作系统发送解码指令,所述操作系统基于所述解码指令,对所述屏幕流数据进行解码,得到解码数据。[0073] S102:所述中间模块获取与所述屏幕流数据对应的画布的信息。[0074] 在一个示例中,所述中间模块可以从其它模块处获得所述屏幕流数据对应的画布信息。本申请实施例不具体限定所述其它模块,考虑到投屏设备包括与投屏业务相关的模块(以下简称业务模块),该业务模块,可以处理与投屏业务相关的数据处理操作。因此,在一个示例中,所述其它模块,可以是所述业务模块。换言之,在一个示例中,S102在具体实现时,可以获取所述业务模块发送的所述画布的信息。[0075] 关于所述画布,需要说买的是,所述画布可以是所述业务模块创建的,例如,在一个示例中,所述业务模块可以在用户触发投屏操作之后,响应于该投屏操作,创建所述画布。其中,用户可以在共享设备上出发投屏操作,在一个示例中,所述共享设备上可以包括用于触发投屏操作的控件,用户可以通过该控件,触发所述投屏操作。[0076] 在一个示例中,所述业务模块可以在创建所述画布时,设置所述画布的信息。其中,画布的信息,包括但不限于画布显示位置和/或画布的大小。例如,所述业务模块可以在创建画布时,将所述画布的信息设置为默认画布信息。[0077] 在又一个示例中,考虑到在投屏的过程中,屏幕流数据显示的位置和/或大小均有可能会发生改变。例如,用户改变了投屏窗口在所述投屏设备的屏幕上的显示位置以及大小。因此,所述中间模块可以监听所述屏幕流数据显示的位置和/或大小,在所述屏幕流数据显示的位置和/或大小发生改变时,向所述业务模块发生画布调整通知消息,在一个示例中,所述画布调整通知消息中可以包括改变后的屏幕流数据显示的位置以及大小。相应的,所述业务模块接收到所述画布调整通知消息之后,可以基于所述画布调整通知消息中携带的位置以及大小,设置所述画布的信息。[0078] 在一个示例中,所述中间模块可以在所述投屏设备支持高清渲染的情况下,获取与所述屏幕流数据对应的画布的信息。其中,所述投屏设备支持高清渲染,可以是所述投屏设备支持不适用所述操作系统的图形处理器(graphicsprocessingunit,GPU)进行渲染,而是可以直接使用操作系统中的硬件驱动模块进行渲染。若所述投屏设备支持高清渲染,则可以执行S102及后续步骤。若所述投屏设备不支持高清渲染,则可以由所述业务模块基于所述画布的信息和解码数据在投屏设备的屏幕上渲染所述解码数据。[0079] S103:所述中间模块将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0080] 所述中间模块获取所述画布的信息之后,可以将所述画布的信息传递给所述操作系统,所述操作系统获得所述画布的信息之后,可以基于所述画布的信息、以及对屏幕流数据进行解码获得的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。在一个示例中,所述操作系统可以使用操作系统的硬件驱动模块在所述投屏设备的屏幕上渲染所述解码数据。[0081] 在本申请实施例中,操作系统在所述屏幕上渲染所述解码数据时,其在屏幕上渲染的画面的分辨率,受到屏幕分辨率以及屏幕流数据的分辨率的影响。其中,操作系统在屏幕上渲染的画面的分辨率,不能高于所述屏幕的分辨率。当屏幕分辨率不低于所述屏幕流的分辨率的情况下,操作系统在所述屏幕上渲染所述解码数据时,其所渲染的画面的分辨率与屏幕流的分辨率相同。当屏幕分辨率低于所述屏幕流的分辨率的情况下,操作系统在所述屏幕上渲染所述解码数据时,其所渲染的画面的分辨率与屏幕的分辨率相同。[0082] 由此可见,利用本方案,能够提升所述投屏设备的屏幕上显示的内容的清晰度。尤其是在屏幕分辨率不低于所述屏幕流的分辨率的情况下,操作系统在所述屏幕上渲染所述解码数据时,其所渲染的画面的分辨率能够达到所述屏幕流的分辨率。[0083] 在一个示例中,在屏幕流数据渲染结束之后,所述操作系统可以向所述中间模块发送第一通知消息,该第一通知消息用于指示屏幕流数据渲染结束。所述中间模块接收到所述第一通知消息之后,可以生成第二通知消息,并向所述业务模块发送所述第二通知消息,所述第二通知消息用于指示所述业务模块销毁画布。相应的,所述业务模块在接收到所述第二通知消息之后,可以销毁所述画布。采用这种方式,业务模块可以在接收到第二通知消息之后(屏幕流数据渲染结束之后)再销毁画布,从而避免出现业务模块销毁画布之后,操作系统仍然在使用画布进行画面渲染的情况。[0084] 本申请实施例化提供了一种投屏方法,该方法可以由前述业务模块执行。参见图2,该图为本申请实施例提供的又一种投屏方法的流程示意图。图2所示的方法,可以应用于业务模块,所述方法例如可以包括如下S201‑S202。[0085] S201:投屏设备的业务模块响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块。[0086] S202:所述业务模块通过中间模块将所述画布的信息传递给操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0087] 在一个示例中,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0088] 在一个示例中,所述业务模块通过如下方式设置所述画布的信息:[0089] 所述业务模块通过所述中间模块监听所述屏幕流数据显示的位置和/或大小;[0090] 所述业务模块在在所述屏幕流数据显示的位置和/或大小发生改变时,接收所述中间模块发送的画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小;[0091] 所述业务模块基于所述画布调整通知消息中携带的所述改变后的屏幕流数据显示的位置以及大小,设置所述画布的信息。[0092] 关于图2所示的投屏方法,其具体实现可以参考上文对于图1所示的投屏方法的相关描述部分,此次不做重复描述。[0093] 在不冲突的情况下,图1所示的投屏方法和图2所示的投屏方法可以相互结合或引用。[0094] 接下来,从信令交互的角度,介绍本申请实施例的方案。[0095] 参见图3,该图为本申请实施例提供的一种投屏方法的信令交互图。图3所示的方法,例如可以包括如下S301‑S305。[0096] S301:业务模块响应于用户触发的投屏操作,创建画布。[0097] S302:业务模块将画布的信息发送给中间模块。[0098] S303:中间模块将画布的信息发送给操作系统。[0099] S304:操作系统获得屏幕流数据,并对屏幕流数据进行解码,得到解码数据。[0100] S305:操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0101] 需要说明的是,S304在S301和S305之间执行即可,S304的具体执行顺序不限于图3所示的顺序。[0102] 关于图3所示的方法的具体实现,可以参考上文对于图1和图2的相关描述部分,此处不做重复描述。[0103] 示例性设备[0104] 基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。[0105] 参见图4,该图为本申请实施例提供的一种投屏装置的结构示意图。图4所示的投屏装置400,可以应用于投屏设备的中间模块。所述装置400例如可以具体包括:解码单元401、获取单元402和第一发送单元403。[0106] 解码单元401,用于利用所述投屏设备的操作系统对屏幕流数据进行解码,得到解码数据;[0107] 获取单元402,用于获取与所述屏幕流数据对应的画布的信息;[0108] 第一发送单元403,用于将所述画布的信息传递给所述操作系统,由所述操作系统基于所述画布的信息和所述解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0109] 可选的,所述获取单元402,用于:[0110] 获取由所述投屏设备的业务模块发送的所述画布的信息,所述业务模块为与投屏业务相关的模块,其中,所述画布是所述业务模块响应于用户触发的投屏操作而创建的。[0111] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0112] 可选的,所述画布的信息,是所述业务模块在接收到所述中间模块发送的画布调整通知消息而设置的,其中,所述中间模块在所述屏幕流数据显示的位置和/或大小发生改变时,向所述业务模块发送所述画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小。[0113] 可选的,所述装置还包括:[0114] 接收单元,用于接收所述操作系统发送的第一通知消息,所述第一通知消息用于指示屏幕流数据渲染结束;[0115] 第二发送单元,用于基于所述第一通知消息向所述业务模块发送第二通知消息,所述第二通知消息用于通知所述业务模块销毁所述画布。[0116] 可选的,所述获取单元402,用于:[0117] 在确定所述投屏设备支持高清渲染的情况下,获取与所述屏幕流数据对应的画布的信息,所述投屏设备支持高清渲染,用于指示所述投屏设备支持不使用所述操作系统的图形处理器GPU而直接使用所述操作系统中的硬件驱动模块进行渲染。[0118] 由于所述装置400是与以上方法实施例提供的由中间模块执行的投屏方法对应的装置,所述装置400的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置400的各个单元的具体实现,可以参考以上方法实施例的相关描述部分,此处不再赘述。[0119] 本申请实施例还提供了一种投屏装置,参见图5,该图为本申请实施例提供的又一种投屏装置的结构示意图。图5所示的投屏装置500,可以应用于投屏设备的业务模块。所述装置500例如可以具体包括:创建单元501和发送单元502。[0120] 创建单元501,用于响应于用户触发的投屏操作,创建画布,所述业务模块为与投屏业务相关的模块;[0121] 发送单元502,用于通过中间模块将所述画布的信息传递给操作系统,由所述操作系统基于所述画布的信息以及对屏幕流数据进行解码得到的解码数据,在所述投屏设备的屏幕上渲染所述解码数据。[0122] 可选的,所述画布的信息,是所述业务模块在创建所述画布时设置的。[0123] 可选的,所述业务模块通过如下方式设置所述画布的信息:[0124] 所述业务模块通过所述中间模块监听所述屏幕流数据显示的位置和/或大小;[0125] 所述业务模块在在所述屏幕流数据显示的位置和/或大小发生改变时,接收所述中间模块发送的画布调整通知消息,所述画布调整通知消息中携带改变后的屏幕流数据显示的位置以及大小;[0126] 所述业务模块基于所述画布调整通知消息中携带的所述改变后的屏幕流数据显示的位置以及大小,设置所述画布的信息。[0127] 由于所述装置500是与以上方法实施例提供的由业务模块执行的投屏方法对应的装置,所述装置500的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置500的各个单元的具体实现,可以参考以上方法实施例的相关描述部分,此处不再赘述。[0128] 本申请实施例提供了一种设备,所述设备包括处理器和存储器;[0129] 所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行以上方法实施例任一项所述的投屏方法。[0130] 本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行以上方法实施例任一项所述的投屏方法。[0131] 本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上方法实施例任一项所述的投屏方法。[0132] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。[0133] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。[0134] 以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

专利地区:北京

专利申请日期:2022-07-20

专利公开日期:2024-06-18

专利公告号:CN115209117B

电话咨询
读内容
搜本页
回顶部