虚拟场景加载方法、装置、设备及存储介质与流程
未命名
09-24
阅读:45
评论:0
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.图1是控制设备需要实现的dlna标准的示意图;
80.图2是云游戏客户端的界面的示意图;
81.图3是本技术实施例提供的虚拟场景加载系统的架构示意图;
82.图4a是本技术实施例提供的图3中的控制手柄的结构示意图;
83.图4b是本技术实施例提供的图3中的智能电视的结构示意图;
84.图4c是本技术实施例提供的图3中的服务器的结构示意图;
85.图5是本技术实施例提供的虚拟场景加载方法的一个流程示意图;
86.图6是本技术实施例提供的目标文件参数的生成示意图;
87.图7是本技术实施例提供的播放设备请求流媒体数据的示意图;
88.图8是本技术实施例提供的请求接收提示消息的示意图;
89.图9是本技术实施例提供的虚拟场景加载方法的另一个流程示意图;
90.图10是本技术实施例提供的失败提示消息的示意图;
91.图11是本技术提供的控制设备的示意图;
92.图12是本技术实施例提供的云游戏的运行示意图;
93.图13是本技术实施例提供的将游戏列表封装到dlna的媒体内容服务中的媒体对象的过程示意图;
94.图14是本技术实施例提供的将预设协议标准的播放地址替换为服务器提供提供的流媒体播放地址的示意图;
95.图15是本技术实施例提供的游戏手柄需要实现的dlna标准的示意图;
96.图16是本技术实施例提供的云游戏的运行过程示意图。
具体实施方式
97.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
98.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
99.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
100.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
101.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
102.1)云计算(cloud computing)是指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可以是其他服务、云计算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
103.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计
算的产生从理念上将推动整个互联网的模式、企业管理模式发生革命性的变革。
104.2)云游戏(cloud gaming)又可称为游戏点播(gaming ond demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
105.3)控制设备,是对云游戏的启动,以及云游戏运行进行控制的设备。
106.4)upnp(universal plug and play,通用即插即用)协议,是一种设备间的互联互通协议,其能够提供包括寻址、设备互相发现等功能。
107.5)dlna(digital living network alliance,数字家庭网络联盟)标准,是在upnp基础上制定的设备共享内容服务的标准,不通过设备可以互相访问各自提供的服务。需要说明的是,dlna是一种解决方案,是多种技术的整合,包含多种协议,例如超文本传输协议(hyper text transfer protocol,http)、超文本传输安全协议(hyper text transfer protocol over securesocket layer,https)等。
108.6)媒体服务器(mediaserver),按照dlna标准提供媒体内容服务。例如,可以用移动终端基于dlna标准访问媒体服务器中的图片以及视频内容等。
109.媒体服务器用于实现以下标准接口:内容目录服务(contentdirectory)、连接管理服务(connectionmanager)以及媒体传输服务标准(avtransport)。
110.其中,内容目录服务用于提供媒体内容(例如图片、音频、视频等)的查询和索引服务;连接管理服务用于管理媒体服务器和媒体播放器的连接;媒体传输服务标准用于提供媒体的播放地址、开始播放、暂停播放等接口。
111.7)媒体播放器(mediarender),按照dlna标准提供显示媒体服务。例如,支持dlna标准的智能电视和投影仪等都可以作为媒体播放器。本技术实施例中的播放设备可以作为媒体播放器。
112.媒体播放器用于实现以下标准接口:呈现控制接口(renderingcontrol)、连接管理服务(connectionmanager)和媒体传输服务标准(avtransport)。
113.其中,呈现控制接口用于提供设置播放属性(例如亮度、对比度、音量等等)等接口;连接管理服务和媒体传输服务标准的用途,已经在媒体服务器部分进行了说明。
114.8)控制点(controlpoint),按照dlna标准实现的控制器,协调媒体服务器和媒体播放器,以控制内容的显示。本技术实施例中的控制设备,可以理解为一个控制点。
115.可以理解的是,控制点是通过调用媒体服务器所实现的标准接口,以及调用媒体播放器所实现的标准接口,来协调媒体服务器和媒体播放器的。
116.示例性的,图1是控制设备需要实现的dlna标准的示意图。控制设备需要实现控制点1-1、媒体服务器1-2和媒体播放器1-3。其中,控制点1-1包括界面应用服务1-11。媒体服务器1-2包括内容目录服务1-21、连接管理服务1-22和媒体传输服务标准1-23,媒体播放器1-3包括程序控制服务1-31、连接管理服务1-32和媒体传输服务标准1-33。
117.9)实时流媒体传输协议(real time streaming protocol,rtsp),将音频和视频数据实时编码传输。
118.10)响应于,用于表示所执行的操作所依赖的条件或状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在先后顺序的限制。
119.11)虚拟场景,是在显示设备上显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚拟的虚拟环境,还可以是纯虚拟的虚拟环境、虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。虚拟场景可以包括天空、陆地、海洋和虚拟对象等,该陆地可以包括沙漠、城市等环境元素,玩家可以控制虚拟对象在虚拟场景中进行移动。
120.12)虚拟对象,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如,在虚拟场景中显示的人物、动物、植物、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表使用者的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
121.云游戏应用是通过在云端服务器运行游戏,通过网络将游戏的画面和音频发送给播放设备的方式,使得玩家利用数据处理能力较弱的播放设备,例如,智能电视、投影仪等,也能够加载云游戏在运行时的虚拟场景。
122.相关技术中,通常需要先在播放设备中安装云游戏客户端,从而当玩家启动任意云游戏时,由云端服务器在后台加载云游戏的虚拟场景,云游戏客户端控制播放设备与云端服务器进行交互,以获取虚拟场景的画面和音频,并展示获取到的画面和音频。
123.值得注意的是,云游戏应客户端与具体的游戏客户端是不同的,游戏客户端能在本地运行对应的游戏,而云游戏客户端相当于游戏平台,可以供玩家选择的不同云游戏以进行运行。
124.示例性的,图2是云游戏客户端的界面的示意图。参见图2,在云游戏应用界面2-1包括两个区域,分别为控制选项区域2-11和游戏选择区域2-12。控制选项区域2-11中,展示有玩家的基础信息2-111(例如玩家的昵称、等级等)、显示控制选项卡2-112和操作选项卡2-113(例如系统设置、通知提示等选项卡)等。在游戏选择区域2-12中,展示有玩家可以选择启动的游戏2-121,以供玩家选择需要启动的游戏。
125.然而,由于数据传输协议、硬件配置等差异,可以安装云游戏客户端的播放设备种类是有限的,从而使得能够加载虚拟场景的播放设备较少,即使得支持加载虚拟场景的设备范围较小。
126.本技术实施例提供一种云游戏运行方法、装置、设备和计算机可读存储介质、程序产品,能够扩大支持加载虚拟场景的设备范围。下面说明本技术实施例提供的控制设备、播放设备和云端设备的示例性应用,本技术实施例提供的播放设备可以实施为笔记本电脑,平板电脑,台式计算机,智能电视、投影仪等各种类型的终端,控制设备可以实施为控制手柄、体感设备等等,云端设备也可以实施为服务器。下面,将说明控制设备实施为智能电视、控制设备实施为控制手柄、云端设备实施为服务器时的示例性应用。
127.参见图3,图3是本技术实施例提供的虚拟场景加载系统的架构示意图,为实现支撑一个虚拟场景加载应用,在虚拟场景加载系统100中,控制手柄500(控制设备)和智能电视400(播放设备)通过网络300连接服务器200(云端设备),网络300可以是广域网或者局域
网,又或者是二者的组合。
128.控制手柄500用于接收第一协议的流媒体播放地址,流媒体播放地址是服务器200针对发送的地址拉取请求所返回的,地址拉取请求用于拉取提供虚拟场景加载时的流媒体数据的播放地址;响应于针对虚拟场景的加载触发操作,基于本地媒体文件向智能电视400发送媒体投屏请求,以及向服务器200发送指示开始加载虚拟场景的运行指令;接收智能电视400针对媒体投屏请求所返回的参数获取请求;响应于参数获取请求,获取本地媒体文件对应的初始媒体参数;利用流媒体播放地址,对初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数;将目标文件参数返回给智能电视400,以使智能电视400从目标文件参数中的流媒体播放地址,请求虚拟场景的流媒体数据并播放。
129.智能电视400用于接收控制手柄500针对本地媒体文件发送的媒体投屏请求;响应于媒体投屏请求,向控制手柄500返回参数获取请求;接收控制手柄500针对参数获取请求所返回的目标文件参数,并从目标文件参数中解析出第一协议的流媒体播放地址,其中,目标文件参数是通过将本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址,替换为第一协议的流媒体播放地址而得到的;从流媒体播放地址请求虚拟场景的流媒体数据,并播放流媒体数据。
130.服务器200用于响应于控制手柄500所发送的地址拉取请求,生成第一协议的流媒体播放地址,其中,地址拉取请求用于拉取提供虚拟场景时的流媒体数据的播放地址;将流媒体播放地址,返回至控制手柄500,以使控制手柄500利用流媒体播放地址,对本地媒体文件所对应的初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,目标文件参数用于向智能电视400提供请求虚拟场景的流媒体数据的流媒体播放地址;接收控制手柄500发送的用于指示开始加载虚拟场景的运行指令;响应于运行指令,对虚拟场景进行加载,并将虚拟场景对应的流媒体数据存储至流媒体播放地址中。
131.在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器、智能电视和控制手柄可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例在此不做限制。
132.参见图4a,图4a是本技术实施例提供的图3中的控制手柄(控制设备的一种实施方式)的结构示意图,图4a所示的控制手柄500包括:至少一个第一处理器510、第一存储器550、至少一个第一网络接口520和第一用户接口530。控制手柄500中的各个组件通过第一总线系统540耦合在一起。可理解,第一总线系统540用于实现这些组件之间的连接通信。第一总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4a中将各种总线都标为第一总线系统540。
133.第一处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
134.第一用户接口530包括使得能够呈现媒体内容的一个或多个第一输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。第一用户接口530还包括一个或多个第
一输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
135.第一存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第一存储器550可选地包括在物理位置上远离第一处理器510的一个或多个存储设备。
136.第一存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的第一存储器550旨在包括任意适合类型的存储器。
137.在一些实施例中,第一存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
138.第一操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
139.第一网络通信模块552,用于经由一个或多个(有线或无线)第一网络接口520到达其他计算设备,示例性的第一网络接口520包括:蓝牙、无线相容性认证(wi-fi)、和通用串行总线(usb,universal serial bus)等;
140.第一呈现模块553,用于经由一个或多个与第一用户接口530相关联的第一输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
141.第一输入处理模块554,用于对一个或多个来自一个或多个第一输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
142.在一些实施例中,本技术实施例提供的虚拟场景加载装置可以采用软件方式实现,图4a示出了存储在第一存储器550中的虚拟场景加载装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一接收模块5551、投屏请求模块5552、第一发送模块5553、参数生成模块5554、数据转换模块5555、信息选择模块5556和显示控制模块5557,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
143.参见图4b,图4b是本技术实施例提供的图3中的智能电视(播放设备的一种实施方式)的结构示意图,图4b所示的智能电视400包括:至少一个第二处理器410、第二存储器450、至少一个第二网络接口420和第二用户接口430。智能电视400中的各个组件通过第二总线系统440耦合在一起。可理解,第二总线系统440用于实现这些组件之间的连接通信。第二总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4b中将各种总线都标为第二总线系统440。
144.第二处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
145.第二用户接口430包括使得能够呈现媒体内容的一个或多个第一输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。第二用户接口430还包括一个或多个第
二输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
146.第二存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第二存储器450可选地包括在物理位置上远离第二处理器410的一个或多个存储设备。
147.第二存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的第二存储器450旨在包括任意适合类型的存储器。
148.在一些实施例中,第二存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
149.第二操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
150.第二网络通信模块452,用于经由一个或多个(有线或无线)第二网络接口420到达其他计算设备,示例性的第二网络接口420包括:蓝牙、无线相容性认证(wi-fi)、和通用串行总线(usb,universal serial bus)等;
151.第二呈现模块453,用于经由一个或多个与第二用户接口430相关联的第二输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
152.第二输入处理模块454,用于对一个或多个来自一个或多个第二输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
153.在一些实施例中,本技术实施例提供的虚拟场景加载装置可以采用软件方式实现,图4b示出了存储在第二存储器450中的虚拟场景加载装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第二接收模块4551、第二发送模块4552、数据请求模块4553和数据播放模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
154.参见图4c,图4c是本技术实施例提供的图3中的服务器(云端设备的一种实施方式)的结构示意图,图4c所示的服务器200包括:至少一个第三处理器210、第三存储器250、至少一个第三网络接口220和第三用户接口230。服务器200中的各个组件通过第三总线系统240耦合在一起。可理解,第三总线系统240用于实现这些组件之间的连接通信。第三总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4c中将各种总线都标为第三总线系统240。
155.第三处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
156.第三用户接口230包括使得能够呈现媒体内容的一个或多个第三输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。第三用户接口230还包括一个或多个第三输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示
屏、摄像头、其他输入按钮和控件。
157.第三存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第三存储器250可选地包括在物理位置上远离第三处理器210的一个或多个存储设备。
158.第三存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的第三存储器250旨在包括任意适合类型的存储器。
159.在一些实施例中,第三存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
160.第三操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
161.第三网络通信模块252,用于经由一个或多个(有线或无线)第三网络接口220到达其他计算设备,示例性的第三网络接口220包括:蓝牙、无线相容性认证(wi-fi)、和通用串行总线(usb,universal serial bus)等;
162.第三呈现模块253,用于经由一个或多个与第三用户接口230相关联的第三输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
163.第三输入处理模块254,用于对一个或多个来自一个或多个第三输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
164.在一些实施例中,本技术实施例提供的虚拟场景加载装置可以采用软件方式实现,图4c示出了存储在第三存储器250中的虚拟场景加载装置255,其可以是程序和插件等形式的软件,包括以下软件模块:地址生成模块2551、第三发送模块2552、第三接收模块2553和数据处理模块2554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
165.在一些实施例中,控制手柄(控制设备)、智能电视(播放设备)和服务器(云端设备)可以通过运行计算机程序来实现本技术实施例提供的虚拟场景加载方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如云游戏连接助手app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
166.本技术实施例可以应用于云技术、人工智能、智慧交通、车载等各种场景。下面,将结合本技术实施例提供的控制设备、播放设备和云端设备的示例性应用和实施,说明本技术实施例提供的虚拟场景加载方法。
167.参见图5,图5是本技术实施例提供的虚拟场景加载方法的一个流程示意图,将结合图5示出的步骤进行说明。
168.s101、云端设备响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址。
169.本技术实施例是在对虚拟场景进行加载的场景下实现的,例如加载云游戏对应的
虚拟场景,以供使用者与虚拟场景进行互动体验。在开始对虚拟场景的加载时,首先要由控制设备从云端设备拉取虚拟场景所对应的流媒体数据的播放地址,然后将播放地址提供给播放设备,以便播放设备从播放地址中获取流媒体数据并播放。因此,本技术实施例中,控制设备需要先生成针对虚拟场景的地址拉取请求,并通过网络将地址拉取请求发送给云端设备。云端设备接收到地址拉取请求之后,就会基于第一协议,为虚拟场景生成对应的流媒体播放地址。也就是说,本技术实施例中,地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址。
170.需要说明的是,第一协议可以是实时流媒体传输协议(real time streaming protocol,rstp),也可以是实时消息传输协议(real time messaging protocol,rtmp)。从而,流媒体播放地址的形式可以是rtsp://xxxxxx,或者是rtmp://xxxxx。
171.可以理解的是,流媒体数据中可以包括指虚拟场景的画面信息,例如虚拟对象行走时周围场景改变的图像,还可以包括虚拟场景的音频,例如在虚拟场景的流水音效等等。
172.还可以理解的是,虚拟场景可以是云游戏应用所对应的游戏场景,也可以是虚拟现实应用所对应的场景,本技术实施例在此不做限定。地址拉取请求中会携带有虚拟场景所属的应用的标识,以便云端设备明确需要建立流媒体播放地址的虚拟场景是哪个。
173.本技术实施例中,控制设备中可以设置有无线连接模块,例如wi-fi模块,从而控制设备可以通过无线连接模块接入到网络中。
174.s102、云端设备将流媒体播放地址,返回至控制设备。
175.云端设备生成流媒体播放地址之后,就会通过网络,将流媒体播放地址发送给控制设备,以完成对地址拉取请求的响应。控制设备接收第一协议的流媒体播放地址,流媒体地址是云端设备针对发送的地址拉取请求所返回的,以便于在后续将流媒体播放地址传输给播放设备。
176.需要说明的是,s101和s102,可以是在虚拟场景加载被触发之前就执行好的(也即控制设备先从云端设备获得流媒体播放地址,在虚拟场景加载开始时直接使用),也可以是在虚拟场景加载被触发的时候开始执行的(也即控制设备在虚拟场景加载开始的一瞬间从云端设备拉取流媒体播放地址),在此不做具体限定。本技术实施例中,是以先执行s101-s102的过程,再开始触发虚拟场景的加载为例说明本技术实施例的虚拟场景加载方法的。
177.s103、控制设备响应于对虚拟场景的加载触发操作,基于本地媒体文件向播放设备发送媒体投屏请求,并向云端设备发送指示开始加载虚拟场景的运行指令。
178.控制设备会实时检测使用者是否针对虚拟场景进行了加载触发操作,并在检测到加载触发操作时,先在本地进行文件扫描,以得到本地媒体文件,并针对本地媒体文件,生成媒体投屏请求并发送给播放设备,以通过媒体投屏请求调用播放设备进行投屏。同时,控制设备还会生成用于指示云端设备开始进行虚拟场景的加载的运行指令,将运行指令发送给云端设备。
179.播放设备接收控制设备针对本地媒体文件发送的媒体投屏请求,以及云端设备接收控制设备发送的用于指示开始加载虚拟场景的运行指令。
180.可以理解的是,加载触发操作可以是使用者按下控制设备上的实体按键,例如,按下控制手柄(控制设备的一种实施)上的开始键,也可以是使用者通过移动控制设备进行了特定动作,例如,挥动体感设备(控制设备的一种实施)达到角度阈值等等,本技术实施例在
此不做具体限定。
181.本地媒体文件可以是存储在控制设备的历史媒体文件,例如由云端设备在历史时间内对所加载的虚拟场景录制得到并发送的。本地媒体文件也可以是默认的媒体文件,例如,包含在控制设备的出厂设置信息中的使用说明视频等。当然,本地媒体文件还可以是由其他方式获得的,本技术实施例在此不做限定。
182.s104、播放设备响应于媒体投屏请求,向控制设备返回参数获取请求。
183.播放设备在接收到媒体投屏请求之后,就会明确使用者在控制设备开启了,并需要通过其向使用者呈现虚拟场景的流媒体数据。此时,为了继续实现投屏,播放设备会生成参数获取请求,并将参数获取请求发送给控制设备,以通过参数获取请求来进一步明确控制设备需要播放的媒体文件。控制设备接收播放设备针对媒体投屏请求所返回的参数获取请求。
184.也就是说,本技术实施例中,本地媒体文件只是来触发播放设备发送参数获取请求的,即触发播放设备的投屏接收处理流程,并不是说控制设备需要播放设备对本地媒体文件进行播放。控制设备所需要播放的媒体文件,会通过响应参数获取请求来告知播放设备。
185.s105、控制设备响应于参数获取请求,获取本地媒体文件对应的初始文件参数。
186.控制设备响应于参数获取请求,针对本地媒体文件进行参数获取,所得的的就是初始文件参数。可以理解的是,在初始文件参数中,至少包含有本地媒体文件对应的播放地址,该播放地址是由控制设备所生成的。
187.当然,在一些实施例中,初始文件参数中还可以包含有本地媒体文件对应的文件大小,以及本地媒体文件对应的生成时间、编码类型等信息,本技术实施例在此不做具体限定。
188.s106、控制设备利用流媒体播放地址,对初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数。
189.控制设备在获取到初始文件参数之后,会先从初始文件参数中定位出链接地址字段,即先定位出用于存放文件地址的字段,然后再从链接地址字段所对应的原始内容中定位出基于第二协议的本地文件地址,然后利用流媒体播放地址,对本地文件地址进行覆盖,从而实现将本地文件地址替换为流媒体播放地址。完成地址替换之后的文件参数,就是需要发送给播放设备的目标文件参数。
190.也就是说,本技术实施例中,控制设备是利用本地媒体文件所对应的初始文件参数为模板,另外生成了一个新的目标文件参数,在目标文件参数中将真正需要投屏给播放设备进行播放的流媒体文件的地址提供给了播放设备。
191.当然,在另一些实施例中,控制设备除了对初始文件参数中的本地文件地址进行修改之外,也可以对初始文件参数中的本地媒体文件的原始大小进行修改,例如,将媒体大小修改为无穷大(64位数的最大值可看做是无穷大)。
192.需要说明的是,第二协议与第一协议是不同的。第一协议是能够支持流媒体数据实时传输的协议,例如rtsp等各种流媒体协议,以保证播放设备能够实时播放虚拟场景的流媒体数据,而第二协议则是将流媒体数据作为文件进行处理,无法支持实时传输的协议,例如超文本传输协议(hyper text transfer protocol)。
193.示例性的,图6是本技术实施例提供的目标文件参数的生成示意图。播放设备向控制设备发送参数获取请求6-1,在参数获取请求6-1中,包含有内容为post/getproperty?playbackaccesslog的字段6-11,以表明该请求是用于需要投屏的媒体文件的属性的,以及内容为session-id:24b3fd94的字段6-12,以向控制设备表明播放设备的身份。控制设备收到参数获取请求6-1之后,就会先初始文件参数6-2,并将初始文件参数6-2中的媒体大小6-21对应的内容,即字段duration-downloaded对应的内容从70,替换为64位数的最大值6-22,同时将链接地址字段6-23的内容,即本地文件地址,从http://devimages.xxx.com.xxx,替换为流媒体播放地址rtsp://xxxxxx6-24。在所有的替换工作完成之后,控制设备就得到了目标文件参数。
194.s107、控制设备将目标文件参数返回给播放设备,以使播放设备从目标文件参数中的流媒体播放地址,请求虚拟场景的流媒体数据并播放。
195.播放设备接收控制设备针对参数获取请求所返回的目标文件参数,并从目标文件参数中解析出第一协议的流媒体播放地址,以便于后续从流媒体播放地址拉取虚拟场景的流媒体数据并播放。
196.示例性的,图7是本技术实施例提供的播放设备请求流媒体数据的示意图。播放设备生成数据拉取请求7-1,并将数据拉取请求7-1发送至提供流媒体数据的数据服务器。数据服务器首先向播放设备发送请求接收提示消息,以向播放设备表明接收到了数据拉取请求7-1,然后根据数据拉取请求7-1中的rtsp地址7-11获取流媒体数据。图8是本技术实施例提供的请求接收提示消息的示意图,可见,请求接收提示消息8-1中可以为字段http/1.1 200 ok。
197.s108、云端设备响应于运行指令,对虚拟场景进行加载,并将虚拟场景对应的流媒体数据存储至流媒体播放地址中。
198.云端设备在接收到运行指令之后,就会开始运行和加载虚拟场景,以得到虚拟场景的流媒体数据,即视频和音频,并将音频和视频直接存储到之前所创建好的流媒体播放地址中,或者是对音频和视频分别进行编码压缩,得到视频流和音频流,并将视频流和音频流分别存储到流媒体播放地址中。
199.需要说明的是,s108和s104-s107在执行时可以以本技术实施例给出的顺序之后,也可以是先执行s104-s107在执行s108,还可以是s104-s107与s108同步执行。
200.s109、播放设备从流媒体播放地址请求虚拟场景的流媒体数据。
201.播放设备访问流媒体播放地址,以从流媒体播放地址请求到流媒体数据。更详细的,播放设备先从流媒体播放地址获取到流媒体数据,即音频和视频的编码信息,例如,压缩规格、码率、视频分辨率、音频采样率、压缩通道数和压缩位数等信息,然后再建立音频通道接收音频帧,建立视频通道接收视频帧,以逐帧接收音频和视频,得到虚拟场景的流媒体数据。
202.s110、播放设备播放流媒体数据。
203.最后,播放设备将请求到的流媒体数据中的视频显示在自身的显示界面上,同时调用音频输出设备对流媒体数据中的音频进行播放。如此,就完成了虚拟场景加载的过程,以供使用者与虚拟场景进行交互。
204.可以理解的是,相比于相关技术中,可以安装云游戏客户端的播放设备的种类较
少,使得支持加载虚拟场景的设备范围较小,本技术实施例中,控制设备能够针对虚拟场景先从云端设备拉取到流媒体播放地址,并在开始加载虚拟场景时,针对本地媒体文件向播放设备发送媒体投屏请求,以触发播放设备的投屏接收处理流程,然后再响应播放设备所发送的参数获取请求,利用包含本地媒体文件的本地文件地址的初始文件参数作为模板,在将本地文件地址修改为第一协议的流媒体播放地址,返回给播放设备,使得播放设备在播放时,从流媒体播放地址获取到虚拟场景的多媒体内容以进行播放,即使在播放设备不支持云游戏客户端时,也能够播放虚拟场景的流媒体数据,以供使用者体验,最终扩大支持虚拟场景加载的设备范围。
205.在本技术的一些实施例中,控制设备利用流媒体播放地址,对初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,即s106的具体实现过程,可以包括:s1061-s1063,如下:
206.s1061、控制设备从初始文件参数中,定位出链接地址字段。
207.控制设备对初始文件参数中的各个字段进行读取,直至读取到链接地址字段时,就能够确定出链接地址字段在初始文件参数中的位置,完成链接地址字段的定位。
208.可以理解的是,链接地址字段可以用uri表示,也可以用分配给链接地址字段的数字进行表示,本技术实施例在此不做具体限定。
209.s1062、控制设备依据第二协议的协议关键字,从链接地址字段所对应的原始内容中定位出第二协议的本地文件地址。
210.接着,控制设备对链接地址字段的原始内容进行读取,然后利用第二协议的协议关键字,例如http、https等,对链接地址字段的原始内容进行匹配,以从原始内容中定位出协议关键字,然后再获取处于协议关键字之后的内容,利用协议关键字和处于协议关键字之后的内容,拼接称为本地文件地址。
211.示例性的,当链接地址字段为uri时,控制设备就是先从初始文件参数中找到uri,并获取uri所对应的原始内容,例如,《string》http://devimages.xx.com,然后再在原始内容中定位出http,将http和处于http之后的内容,即完整的http://devimages.xx.com,作为本地文件地址(也即舍弃了http://devimages.xx.com的类型字符《string》)。
212.s1063、控制设备基于用流媒体播放地址覆盖原始内容中的本地文件地址,生成目标文件参数。
213.控制设备利用流媒体播放地址,将原始内容中的本地文件地址进行覆盖,在完成覆盖操作之后,就能够得到一个全新的文件参数,该文件参数就是目标文件参数。
214.本技术实施例中,控制设备能够先从初始文件参数中定位出本地文件地址,然后利用流媒体播放地址将本地文件地址进行替换,重新生成目标文件参数,以便于后续播放设备依据目标文件参数中的流媒体播放地址,请求虚拟场景的流媒体数据。
215.在本技术的一些实施例中,控制设备利用流媒体播放地址覆盖原始内容中的所述本地文件地址,得到目标文件参数,即s1063的具体实现过程,可以包括:s1063a-s1063c,如下:
216.s1063a、控制设备记录本地文件地址在原始内容中位置信息,并从原始内容中,删除本地文件地址,得到链接地址字段对应的剩余内容。
217.控制设备首先会确定本地文件地址在原始内容中的位置信息,例如,本地文件地
址在哪个字符之后,或者本地文件地址从原始内容中的第几个字符开始,并对位置信息进行记录。接着,控制设备会从原始内容中删除本地文件地址,在完成删除操作之后,就得到的链接地址字段所对应的剩余内容。
218.s1063b、控制设备依据记录的位置信息,将流媒体播放地址插入至剩余内容中,得到链接地址字段对应的最新内容。
219.控制设备依据位置信息,将流媒体播放地址重新插入到本地文件地址所对应的位置上,如此,就得到的链接地址字段所对应的最新内容。
220.s1063c、控制设备利用链接地址字段、最新内容、初始文件参数中除链接地址字段之外的其他字段,以及其他字段对应的字段内容,整合为目标文件参数。
221.控制设备建立链接地址字段和最新内容之间的对应关系,并将链接地址字段和最新内容,与初始文件参数中除了链接地址字段之外的其他字段,以及其他字段所对应的字段内容整合在一起,重新形成文件参数,所得到的文件参数就是目标文件参数。
222.本技术实施例中,控制设备通过先删除本地文件地址,然后将流媒体播放地址插入到本地文件地址原先的位置中,实现对本地文件地址的覆盖,以利用流媒体播放地址指定需要播放设备播放的媒体数据,将虚拟场景加载给使用者。
223.参见图9,图9是本技术实施例提供的虚拟场景加载方法的另一个流程示意图。在本技术的一些实施例中,播放设备从流媒体播放地址获取请求虚拟场景的流媒体数据之后,即在s109之后,该方法还可以包括:
224.s111、当流媒体数据播放失败时,播放设备向控制设备发送失败提示消息。
225.播放设备从流媒体播放地址所请求到的流媒体数据,可能会由于不符合播放设备自身的协议服务标准,使得播放设备无法成功播放流媒体数据。此时,播放设备会向控制设备发送失败提示消息,其中,识别提示消息用于提示控制设备流媒体数据播放失败。控制设备接收播放设备返回的失败提示消息。
226.在一些实施例中,播放设备可以自主触发对流媒体数据的播放状态的检测,以确定流媒体数据是否播放成功。在另一些实施例中,播放设备还可以是在接收到控制设备所发送的播放状态查询请求时,触发对流媒体数据的播放状态的检测,此时,播放设备就是针对播放状态查询请求,向控制设备回复失败提示消息。
227.示例性的,图10是本技术实施例提供的失败提示消息的示意图。在失败提示消息10-1中,包含了播放设备已经播放的数据长度10-11,即00000,以及播放状态10-12,即paused。
228.s112、控制设备响应于失败提示消息,从流媒体播放地址请求虚拟场景的的流媒体数据。
229.控制设备在接收到失败提示消息之后,就会确定播放设备目前不能直接播放流媒体数据,此时,控制设备会会开始访问流媒体播放地址,从流媒体播放地址请求流媒体数据,以便将流媒体数据进行处理之后转发给播放设备,保证流媒体数据能够正常在播放设备上进行播放。
230.s113、控制设备将流媒体数据按照播放设备所支持的共享服务标准进行转换,得到转换媒体数据。
231.控制设备将请求到的流媒体数据,按照播放设备所支持的共享服务标准进行转
换,即转换为符合播放设备所支持的共享服务标准的、能够正常播放的数据,并将转换所得到的媒体数据,作为转换媒体数据。
232.s114、控制设备将转换媒体数据发送至播放设备,以使播放设备播放虚拟场景所对应的转换媒体数据,完成虚拟场景的加载。
233.播放设备接收控制设备针对失败提示消息返回的转换媒体数据,并播放转换媒体数据,以供使用者体验虚拟场景。
234.本技术实施例中,当流媒体数据不符合播放设备所支持的协议服务标准时,控制设备会自行从流媒体播放地址请求到流媒体数据,并将流媒体数据转换为符合播放设备所支持的共享服务标准的转换媒体数据,播放设备接收转换媒体数据并进行播放,如此,能够在流媒体数据无法播放的情况下,也能够实现虚拟场景的加载。
235.在本技术的一些实施例中,云端设备响应于运行指令,对虚拟场景进行加载,并将虚拟场景对应的流媒体数据存储至流媒体播放地址中之后,即在s108之后,该方法还可以包括:s115-s116,如下:
236.s115、控制设备响应于针对虚拟场景中的虚拟对象的控制操作,向云端设备发送针对虚拟对象的控制指令。
237.控制设备检测使用者是否针对虚拟对象进行了控制操作,在检测到控制操作之后,就会生成控制操作所对应的控制指令,其中,控制指令用于指示云端设备控制虚拟对象进行控制操作对应的控制事件,并通过网络将控制指令发送给云端设备。云端设备接收控制设备发送的针对虚拟场景中的虚拟对象的控制指令。
238.需要说明的是,控制事件至少包括:控制虚拟对象在虚拟场景中移动的事件和控制虚拟对象与虚拟场景交互的事件,例如,控制虚拟对象在虚拟场景中奔跑,控制虚拟对象拾起虚拟场景中的虚拟道具等等。
239.可以理解的是,使用者可以通过操作控制设备上的按键、摇杆来触发,也可以通过将控制设备旋转过角度阈值实现(例如将环形的体感设备旋转过90度)来触发等等,本技术实施例在此不作限定。
240.s116、云端设备响应于控制指令,对虚拟场景中的虚拟对象进行控制事件。
241.云端设备在接收到控制指令之后,就会对虚拟场景中的虚拟对象进行控制,以实现使用者的控制操作所对应的控制事件。在此过程中,云端设备会不断对虚拟场景最新的流媒体数据,并存储到流媒体播放地址中,以便播放设备从流媒体播放地址中请求到虚拟场景最新的流媒体数据,并将最新的流媒体数据播放给使用者。
242.本技术实施例中,控制设备会将使用者的控制操作,转化为控制指令发送给云端设备,云端设备响应控制指令对虚拟场景中的虚拟对象进行控制,以实现使用者与虚拟场景进行交互。
243.在本技术的一些实施例中,云端设备响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址之前,即在s101之前,该方法还可以包括:s201-s205,如下:
244.s201、控制设备向云端设备发送应用列表拉取请求。
245.本技术实施例中,控制设备还需要针对使用者展示不同的应用,以供使用者进行应用选择,确定出需要加载的虚拟场景是哪个。在此情况下,控制设备会先向云端设备发送应用列表拉取请求,云端设备接收控制设备发送的应用列表拉取请求。
246.可以理解的是,应用列表拉取请求可以是控制设备通过无线连接模块接入到网络之后就触发生成并发送的,也可以是由使用者在控制设备上进行了用于触发拉取应用列表的操作之后生成并发送的,本技术实施例在此不做限定。
247.s202、云端设备响应于应用列表拉取请求,获取控制设备所对应的应用列表,并将应用列表返回给控制设备。
248.云端设备可以依据应用列表拉取请求所包含的控制设备的设备标识,或者是使用者所对应的身份信息,从应用库中查询控制设备所对应的应用,即得到控制设备所能运行的应用,并将这些应用整合成应用列表,发送给控制设备。控制设备接收云端设备针对应用列表拉取请求所返回的应用列表。
249.可以理解的是,应用列表中可以包括云游戏应用,也可以包含可以在云端运行的用于提高使用者的生活体验的虚拟现实应用(例如虚拟换装应用、虚拟家装应用)、三维图形的设计应用等等,本技术实施例在此不做具体限定。
250.s203、控制设备将应用列表封装成播放设备所支持的共享服务标准的文件媒体,并将媒体文件传输至播放设备,以使播放设备播放媒体文件。
251.控制设备按照播放设备所支持的共享服务标准,对应用列表进行封装,得到符合共享服务标准的媒体文件,并通过网络将媒体文件发送给播放设备。播放设备接收控制设备发送的符合共享服务标准的媒体文件。
252.s204、播放设备播放媒体文件。
253.s205、控制设备响应于针对应用列表的选择操作,从应用列表中筛选出目标应用,并将目标应用对应的应用场景确定为虚拟场景。
254.控制设备检测使用者是否针对应用列表进行了选择操作,然后将应用列表中选择操作所对应的应用,确定为目标应用,并将目标应用的应用场景确定为需要加载的虚拟场景。
255.本技术实施例中,控制设备可以通过将从云端设备拉取到的应用列表,包装为符合播放设备所支持的共享服务标准的媒体文件,并由播放设备播放媒体文件,以通过媒体文件使得使用者可以获知应用列表,并进行相应的选择操作,确定出需要加载的虚拟场景。
256.在本技术的一些实施例中,控制设备包括:显示屏,此时,控制设备接收云端设备针对应用列表拉取请求所返回的应用列表之后,控制设备响应于针对应用列表的选择操作,从应用列表中筛选出目标应用,并将目标应用对应的应用场景确定为所述虚拟场景之前,即在s202之后,s205之前,该方法还可以包括:s206,包括:
257.s206、在显示屏中,展示应用列表。
258.控制设备上也可以设置有显示屏,从而,控制设备可以直接将应用列表直接显示在显示屏中,更便于使用者进行应用选择。
259.示例性的,图11是本技术提供的控制设备的示意图。在控制设备11-1上,设置有显示屏11-11,控制设备也可以直接将应用列表展示在显示屏11-11中,以供使用者选择。
260.在本技术的一些实施例中,控制设备接收云端设备针对发送的地址拉取请求所返回的第一协议的流媒体播放地址之前,即在s102之前,该方法还可以包括:s207-s208,如下:
261.s207、控制设备将与控制设备处于同一个局域网中的候选设备的名称,展示在显
示屏中。
262.s208、控制设备响应于接收到的设备选择操作,从候选设备中挑选出播放设备。
263.控制设备对与其处于同一个局域网中的设备的名称进行获取,并将获取到的名称显示在控制设备的显示屏中,以供使用者明确可用的设备都有哪些。然后,控制设备会响应使用者所进行的设备选择操作,将候选设备中通过设备选择操作所选中的设备,确定为播放设备,以便于后续利用播放设备播放流媒体数据。
264.当然,在另一些实施例中,也可以有控制设备自动从候选设备中挑选出播放设备,例如,将候选设备中,支持第二协议的设备确定为播放设备。如此,能够实现播放设备的自动化选择。
265.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
266.本技术实施例是在不允许安装云游戏客户端的智能电视(播放设备)上,实现云游戏的运行的场景下实现的。在本技术实施例中,由设置了wi-fi模块的游戏手柄(控制设备),实现智能电视所支持的协议服务标准的控制点和媒体服务器协议栈,在游戏手柄上增加液晶屏(显示屏),显示在局域网中发现的媒体播放器设备,即智能手机或智能电视的名称,通过游戏手柄上的案件选择播放到智能电视上。
267.图12是本技术实施例提供的云游戏的运行示意图。参见图12,由游戏手柄12-a实现数字家庭网络联盟(dlna)标准的控制点和媒体服务器12-1,在上行通道,向服务器12-b(云端设备)发送手柄操控事件12-2。服务器12-b用于运行云游戏应用12-31、云游戏12-32(例如游戏1至游戏n)、生成流媒体12-33和处理输入事件12-34。在下行通道,服务器12-b向游戏手柄12-a下发dlna或预设标准协议需要的参数12-4。游戏手柄12-a基于dlna或预设标准协议,与智能电视12-c交互,且智能电视12-c实现dlna标准的媒体播放器12-5,通过rtsp实时流媒体传输12-6获取云游戏(虚拟场景)的视频和音频(流媒体数据)并播放。
268.可以理解的是,游戏手柄还可以有wi-fi连接和输入密码的功能,网络连通后会从服务器拉取云游戏列表(应用列表),通过dlna标准将云游戏列表封装到dlna标准里的媒体目标(mediaobject,称为媒体文件)提供给智能电视里的媒体播放器进行播放,而其他媒体标准则需要将云游戏伪装成媒体文件,将播放地址(本地文件地址)换成流媒体播放地址,播放的实际上是云游戏的画面。
269.示例性的,图13是本技术实施例提供的将游戏列表封装到dlna的媒体内容服务中的媒体对象的过程示意图。游戏手柄在接收到游戏列表之后,利用游戏对象的详细数据13-1中的播放地址13-11,即rtsp://xxxxx的地址(第一协议的流媒体播放地址),对dlna标准里的的媒体对象13-2中的地址13-21,即http://xxxxx的地址(第二协议的本地文件地址)进行替换,从而完成对游戏列表的封装。
270.图14是本技术实施例提供的将预设协议标准的播放地址替换为服务器提供提供的流媒体播放地址的示意图。游戏手柄从游戏对象的详细数据14-1中,提取rtsp的播放地址14-11,然后在利用rtsp的播放地址14-11对预设协议标准14-2中的播放地址14-21,替换为rtsp的播放地址14-11。
271.在利用预设标准协议进行投屏播放时,云游戏需要伪装成一个无穷大的媒体文件播放到智能电视中。该过程包括:
272.步骤1:游戏手柄按照预设标准协议在局域网中发现设备,也就是udp组播包告知
局域网其他设备能够提供何种服务,同时发现支持预设标准协议的智能电视,同时从服务器拉取一个rtsp播放地址,用于传输服务器运行的云游戏画面。
273.步骤2:游戏手柄在其显示屏上显示设备名称,方便使用者选择要投屏到那个设备中。
274.步骤3:游戏手柄按照预设标准协议投屏一个无穷大的媒体文件到智能电视上,智能电视调用预设标准协议中的属性获取接口(getproperty)获取媒体文件的大小和播放地址,这里播放地址被替换为步骤1从服务器拉取到的rtsp地址。
275.步骤4:游戏手柄调用预设标准协议中的启动(play)接口,触发智能电视开始播放rtsp地址的数据,该地址是标准的流媒体协议,将音频和视频实时编码到智能电视播放。
276.步骤5:如果播放正常,游戏手柄的输入事件(控制指令)会传输到服务器,来操控服务器控制云游戏的画面(进行控制事件);如果播放失败,也就是游戏手柄的回调事件是播放状态为错误时,切换到dlna标准(共享服务标准)播放。
277.dlna播放云游戏画面的修改有以下几点:按照dlna标准,http协议和rtsp协议都可以支持媒体传输;在游戏手柄上实现dlna控制点和媒体服务器,即将拉取到的游戏列表转成符合dlna标准符合dlna标准的媒体文件,以被安装了dlna的智能电视识别和播放;游戏手柄实现dlna里的控制点和媒体服务器标准,作为控制点控制云游戏的播放和操控,作为媒体服务器将云游戏画面(转换媒体数据)呈现给媒体播放器,增加游戏事件控制(gameeventcontrol)服务,用于针对不同云游戏适配不同手柄事件。
278.示例性的,基于图1,参见图15,图15是本技术实施例提供的游戏手柄需要实现的dlna标准的示意图。游戏手柄同样需要实现控制点1-1、媒体服务器1-2和媒体播放器1-3,只不过在媒体服务器1-2中,新增了游戏事件控制服务15-1需要实现。
279.下面,结合云游戏的运行过程,对控制点、媒体服务器和媒体播放器的运行过程进行说明。图16是本技术实施例提供的云游戏的运行过程示意图。参见图16,该过程包括:
280.s301、控制点调用媒体服务器的内容目录服务中的浏览器接口(contentdirectroy:browser)返回游戏列表并显示在液晶屏上,同时发现可用的播放设备(候选设备)并显示。
281.需要说明的是,游戏手柄上的媒体服务器的内容目录服务不局限于只显示音视频文件,还会提供游戏内容,拉取到服务器已经安装的可以运行的游戏列表的信息,例如,名称、图标、介绍等等,封装到媒体对象(mediaobject)里,媒体对象明确告知dlna播放器只支持rtsp协议,不支持http协议。
282.s302、控制点选择要播放的智能电视。
283.控制点调用连接管理服务中的协议信息获取接口(connectionmanager:getprotocolinfo),返回可用的播放设备的协议和支持的媒体格式。一般返回http和rtsp协议,自动选择rtsp协议。
284.s303、控制点针对不支持rtsp协议的设备返回不能运行云游戏的提示。
285.s304、控制点分别调用媒体服务器和媒体播放器的连接管理服务中的准备连接(connectionmanager:prepareconnevtion)接口,返回传输的智能电视的实例id。
286.需要说明的是,一个控制点可以控制多个媒体播放器,需要以实例id区分,也就是游戏手柄可以将游戏画面播放到多个智能电视上。
287.s305、控制点调用媒体服务器的音视频传输服务中的传输地址设置(avtransport:setavtransporturi())接口得到rtsp的播放地址,调用媒体播放器的音视频传输服务中的传输地址设置接口设置rtsp的播放地址。
288.s306、控制点调用音视频传输服务中的启动(avtransport:play())接口启动游戏。
289.云游戏启动后,游戏画面的视频和音频都被压缩行程实时可用的,可以用rtsp://xxx地址的音视频流。
290.s307、媒体播放器根据rtsp协议请求游戏的音视频流。
291.媒体服务器依据rtsp协议中获取音视频的编码信息,例如视频格式、压缩规格、码率、分辨率等,音频的采样率、压缩通道数和压缩位数。接着基于以下两个步骤,得到音频流和视频流:
292.s3071、媒体播放器基于实时传输协议(rtp)建立视频接收通道接收视频帧。
293.s3072、媒体播放器基于实时传输协议建立音频接收通道接收音频帧。
294.s308、控制点调用媒体服务器新增的游戏事件控制服务,控制云游戏。
295.也就是游戏手柄拉取服务器的手柄事件配置信息,比如将方向键映射为四个方向的移动,还是映射为键盘的方向键,以实现对云游戏的控制。
296.s309、控制点调用媒体服务器和媒体播放器的连接管理服务中的连接完成(connectionmanager:connectioncomplete)接口退出游戏。
297.之后,若是需要重新开始游戏,则重新按照以上处理步骤,开始新一轮的云游戏。
298.可以理解的是,在本技术实施例中,涉及到用户信息,例如游戏列表、身份信息等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
299.下面继续说明本技术实施例提供的虚拟场景加载装置555的实施为软件模块的示例性结构,在一些实施例中,如图4a所示,存储在第一存储器550的虚拟场景加载装置555中的软件模块可以包括:
300.第一接收模块5551,用于接收第一协议的流媒体播放地址,所述流媒体播放地址是云端设备针对发送的地址拉取请求所返回的,所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;
301.投屏请求模块5552,用于响应于对所述虚拟场景的加载触发操作,基于本地媒体文件向播放设备发送媒体投屏请求;
302.第一发送模块5553,用于向所述云端设备发送指示开始加载虚拟场景的运行指令;
303.所述第一接收模块5551,还用于接收所述播放设备针对所述媒体投屏请求所返回的参数获取请求;
304.参数生成模块5554,用于响应于所述参数获取请求,获取所述本地媒体文件对应的初始文件参数;利用所述流媒体播放地址,对所述初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数;
305.所述第一发送模块5553,还用于将所述目标文件参数返回给所述播放设备,以使所述播放设备从所述目标文件参数中的流媒体播放地址,请求所述虚拟场景的流媒体数据
并播放。
306.在本技术的一些实施例中,所述参数生成模块5554,还用于从所述初始文件参数中,定位出链接地址字段;依据所述第二协议的协议关键字,从所述链接地址字段所对应的原始内容中定位出所述第二协议的所述本地文件地址;基于用所述流媒体播放地址覆盖所述原始内容中的所述本地文件地址,生成所述目标文件参数。
307.在本技术的一些实施例中,所述参数生成模块5554,还用于记录所述本地文件地址在所述原始内容中位置信息,并从所述原始内容中,删除所述本地文件地址,得到所述链接地址字段对应的剩余内容;依据记录的所述位置信息,将所述流媒体播放地址插入至所述剩余内容中,得到所述链接地址字段对应的最新内容;利用所述链接地址字段、所述最新内容、所述初始文件参数中除所述链接地址字段之外的其他字段,以及所述其他字段对应的字段内容,整合为所述目标文件参数。
308.在本技术的一些实施例中,所述虚拟场景加载装置555还包括:数据转换模块5555;
309.所述第一接收模块5551,还用于将所述目标文件参数返回给所述播放设备之后,接收所述播放设备返回的失败提示消息,所述失败提示消息用于提示所述流媒体数据播放失败;
310.所述数据转换模块5555,用于响应于所述失败提示消息,从所述流媒体播放地址请求所述虚拟场景的所述流媒体数据;将所述流媒体数据按照所述播放设备所支持的共享服务标准进行转换,得到转换媒体数据;
311.所述第一发送模块5553,还用于将所述转换媒体数据发送至所述播放设备,以使所述播放设备播放所述转换媒体数据,完成虚拟场景的加载。
312.在本技术的一些实施例中,所述第一发送模块5553,还用于向所述云端设备发送指示开始加载虚拟场景的运行指令之后,响应于针对所述虚拟场景中的虚拟对象的控制操作,向所述云端设备发送针对所述虚拟对象的控制指令,所述控制指令用于指示云端设备控制所述虚拟对象进行所述控制操作对应的控制事件;其中,所述控制事件至少包括:控制所述虚拟对象在所述虚拟场景中移动的事件和控制所述虚拟对象与所述虚拟场景交互的事件。
313.在本技术的一些实施例中,所述虚拟场景加载装置555还包括:信息选择模块5556;
314.所述第一发送模块5553,还用于所述接收第一协议的流媒体播放地址之前,向所述云端设备发送应用列表拉取请求;
315.所述第一接收模块5551,还用于接收所述云端设备针对所述应用列表拉取请求所返回的应用列表;
316.所述数据转换模块5555,还用于将所述应用列表封装成所述播放设备所支持的共享服务标准的媒体文件,并将所述媒体文件传输至所述播放设备,以使所述播放设备播放所述媒体文件;
317.所述信息选择模块5556,用于响应于针对所述应用列表的选择操作,从所述应用列表中筛选出目标应用,并将所述目标应用对应的应用场景确定为所述虚拟场景。
318.在本技术的一些实施例中,所述控制设备包括:显示屏,所述虚拟场景加载装置
555还包括:显示控制模块5557;所述显示控制模块5557,用于接收所述云端设备针对所述应用列表拉取请求所返回的应用列表之后,所述响应于针对所述应用列表的选择操作,从所述应用列表中筛选出目标应用,并将所述目标应用对应的应用场景确定为所述虚拟场景之前,在所述显示屏中,展示所述应用列表。
319.在本技术的一些实施例中,所述显示控制模块5557,还用于将与所述控制设备处于同一个局域网中的候选设备的名称,展示在所述显示屏中;
320.所述信息选择模块5556,还用于响应于接收到的设备选择操作,从所述候选设备中挑选出所述播放设备。
321.下面继续说明本技术实施例提供的虚拟场景加载装置455的实施为软件模块的示例性结构,在一些实施例中,如图4b所示,存储在第二存储器450的虚拟场景加载装置455中的软件模块可以包括:
322.第二接收模块4551,用于接收控制设备针对本地媒体文件发送的媒体投屏请求;
323.第二发送模块4552,用于响应于所述媒体投屏请求,向所述控制设备返回参数获取请求;
324.第二接收模块4551,还用于接收所述控制设备针对所述参数获取请求所返回的目标文件参数;
325.数据请求模块4553,用于从所述目标文件参数中解析出第一协议的流媒体播放地址,其中,所述目标文件参数是通过将所述本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址,替换为第一协议的流媒体播放地址而得到的;从所述流媒体播放地址请求虚拟场景的流媒体数据;
326.数据播放模块4554,用于播放所述流媒体数据。
327.在本技术的一些实施例中,所述第二发送模块4552,还用于从所述流媒体播放地址请求虚拟场景的流媒体数据之后,当所述流媒体数据播放失败时,向所述控制设备发送失败提示消息,所述失败提示消息用于提示所述流媒体数据播放失败;
328.所述第二接收模块4551,还用于接收所述控制设备针对所述失败提示消息返回的转换媒体数据;
329.所述数据播放模块4554,还用于播放所述转换媒体数据;其中,所述转换媒体数据是所述控制设备从所述流媒体播放地址请求所述流媒体数据,并对请求到的所述流媒体数据按照播放设备所支持的共享服务标准转换得到的。
330.在本技术的一些实施例中,所述第二接收模块4551,还用于所述接收控制设备针对本地媒体文件发送的媒体投屏请求之前,接收所述控制设备发送的符合共享服务标准的媒体文件,所述媒体文件中封装了所述控制设备对应的应用列表;
331.所述数据播放模块4554,还用于播放所述媒体文件。
332.下面继续说明本技术实施例提供的虚拟场景加载装置255的实施为软件模块的示例性结构,在一些实施例中,如图4c所示,存储在第三存储器250的虚拟场景加载装置255中的软件模块可以包括:
333.地址生成模块2551,用于响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址;所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;
334.第三发送模块2552,用于将所述流媒体播放地址,返回至所述控制设备,以使所述
控制设备利用所述流媒体播放地址,对本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,所述目标文件参数用于向播放设备提供请求虚拟场景的流媒体数据的流媒体播放地址;
335.第三接收模块2553,用于接收所述控制设备发送的用于指示开始加载所述虚拟场景的运行指令;
336.数据处理模块2554,用于响应于所述运行指令,对所述虚拟场景进行加载,并将所述虚拟场景对应的流媒体数据存储至所述流媒体播放地址中。
337.在本技术的一些实施例中,所述第三接收模块2553,还用于响应于所述运行指令,对所述虚拟场景进行加载,并将所述虚拟场景对应的流媒体数据存储至所述流媒体播放地址中之后,接收所述控制设备发送的针对所述虚拟场景中的虚拟对象的控制指令,所述控制指令用于指示云端设备控制所述虚拟对象进行所述控制操作对应的控制事件;
338.所述数据处理模块2554,还用于响应于所述控制指令,对所述虚拟场景中的所述虚拟对象进行所述控制事件;其中,所述控制事件至少包括:控制所述虚拟对象在所述虚拟场景中移动的事件和控制所述虚拟对象与所述虚拟场景交互的事件。
339.在本技术的一些实施例中,所述第三接收模块2553,还用于响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址之前,接收所述控制设备发送的应用列表拉取请求;
340.所述数据处理模块2554,还用于响应于所述应用列表拉取请求,获取所述控制设备所对应的应用列表;
341.所述第三发送模块2552,还用于将所述应用列表返回给所述控制设备。
342.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。控制设备的第一处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的控制设备侧的虚拟场景加载方法,播放设备的第二处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的播放设备侧的虚拟场景加载方法,云端设备的第三处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的云端设备侧的虚拟场景加载方法。
343.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被第一处理器执行时,将引起第一处理器执行本技术实施例提供的控制设备侧的虚拟场景加载方法,被第二处理器执行时,将引起第二处理器执行本技术实施例提供的播放设备侧的虚拟场景加载方法,被第三处理器执行时,将引起第三处理器执行本技术实施例提供的云端设备侧的虚拟场景加载方法。
344.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
345.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在
计算环境中使用的其它单元。
346.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
347.作为示例,可执行指令可被部署为在一个计算设备(控制设备、播放设备或云端设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
348.综上所述,通过本技术实施例,能够在播放设备不支持云游戏客户端时,也能够播放虚拟场景的流媒体数据,以供使用者体验,最终扩大支持虚拟场景加载的设备范围;当流媒体数据不符合播放设备所支持的协议服务标准时,控制设备会自行从流媒体播放地址请求到流媒体数据,并将流媒体数据转换为符合播放设备所支持的共享服务标准的转换媒体数据,播放设备接收转换媒体数据并进行播放,如此,能够在流媒体数据无法播放的情况下,也能够实现虚拟场景的加载。
349.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
技术特征:
1.一种虚拟场景加载方法,其特征在于,所述方法由控制设备执行,包括:接收第一协议的流媒体播放地址,所述流媒体播放地址是云端设备针对发送的地址拉取请求所返回的,所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;响应于对所述虚拟场景的加载触发操作,基于本地媒体文件向播放设备发送媒体投屏请求,并向所述云端设备发送指示开始加载虚拟场景的运行指令;接收所述播放设备针对所述媒体投屏请求所返回的参数获取请求;响应于所述参数获取请求,获取所述本地媒体文件对应的初始文件参数;利用所述流媒体播放地址,对所述初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数;将所述目标文件参数返回给所述播放设备,以使所述播放设备从所述目标文件参数中的流媒体播放地址,请求所述虚拟场景的流媒体数据并播放。2.根据权利要求1所述的方法,其特征在于,所述利用所述流媒体播放地址,对所述初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,包括:从所述初始文件参数中,定位出链接地址字段;依据所述第二协议的协议关键字,从所述链接地址字段所对应的原始内容中定位出所述第二协议的所述本地文件地址;基于用所述流媒体播放地址覆盖所述原始内容中的所述本地文件地址,生成所述目标文件参数。3.根据权利要求2所述的方法,其特征在于,所述基于用所述流媒体播放地址覆盖所述原始内容中的所述本地文件地址,生成所述目标文件参数,包括:记录所述本地文件地址在所述原始内容中位置信息,并从所述原始内容中,删除所述本地文件地址,得到所述链接地址字段对应的剩余内容;依据记录的所述位置信息,将所述流媒体播放地址插入至所述剩余内容中,得到所述链接地址字段对应的最新内容;利用所述链接地址字段、所述最新内容、所述初始文件参数中除所述链接地址字段之外的其他字段,以及所述其他字段对应的字段内容,整合为所述目标文件参数。4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述目标文件参数返回给所述播放设备之后,所述方法还包括:接收所述播放设备返回的失败提示消息,所述失败提示消息用于提示所述流媒体数据播放失败;响应于所述失败提示消息,从所述流媒体播放地址请求所述虚拟场景的所述流媒体数据;将所述流媒体数据按照所述播放设备所支持的共享服务标准进行转换,得到转换媒体数据;将所述转换媒体数据发送至所述播放设备,以使所述播放设备播放所述转换媒体数据,完成虚拟场景的加载。5.根据权利要求1至3任一项所述的方法,其特征在于,所述向所述云端设备发送指示开始加载虚拟场景的运行指令之后,所述方法还包括:响应于针对所述虚拟场景中的虚拟对象的控制操作,向所述云端设备发送针对所述虚
拟对象的控制指令,所述控制指令用于指示云端设备控制所述虚拟对象进行所述控制操作对应的控制事件;其中,所述控制事件至少包括:控制所述虚拟对象在所述虚拟场景中移动的事件和控制所述虚拟对象与所述虚拟场景交互的事件。6.根据权利要求1至3任一项所述的方法,其特征在于,所述接收第一协议的流媒体播放地址之前,所述方法还包括:向所述云端设备发送应用列表拉取请求;接收所述云端设备针对所述应用列表拉取请求所返回的应用列表;将所述应用列表封装成所述播放设备所支持的共享服务标准的媒体文件,并将所述媒体文件传输至所述播放设备,以使所述播放设备播放所述媒体文件;响应于针对所述应用列表的选择操作,从所述应用列表中筛选出目标应用,并将所述目标应用对应的应用场景确定为所述虚拟场景。7.根据权利要求6所述的方法,其特征在于,所述控制设备包括:显示屏;所述接收所述云端设备针对所述应用列表拉取请求所返回的应用列表之后,所述响应于针对所述应用列表的选择操作,从所述应用列表中筛选出目标应用,并将所述目标应用对应的应用场景确定为所述虚拟场景之前,所述方法还包括:在所述显示屏中,展示所述应用列表。8.根据权利要求7所述的方法,其特征在于,所述接收第一协议的流媒体播放地址之前,所述方法还包括:将与所述控制设备处于同一个局域网中的候选设备的名称,展示在所述显示屏中;响应于接收到的设备选择操作,从所述候选设备中挑选出所述播放设备。9.一种虚拟场景加载方法,其特征在于,所述方法由播放设备执行,包括:接收控制设备针对本地媒体文件发送的媒体投屏请求;响应于所述媒体投屏请求,向所述控制设备返回参数获取请求;接收所述控制设备针对所述参数获取请求所返回的目标文件参数,并从所述目标文件参数中解析出第一协议的流媒体播放地址,其中,所述目标文件参数是通过将所述本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址,替换为第一协议的流媒体播放地址而得到的;从所述流媒体播放地址请求虚拟场景的流媒体数据,并播放所述流媒体数据。10.根据权利要求9所述的方法,其特征在于,所述从所述流媒体播放地址请求虚拟场景的流媒体数据之后,所述方法还包括:当所述流媒体数据播放失败时,向所述控制设备发送失败提示消息,所述失败提示消息用于提示所述流媒体数据播放失败;接收所述控制设备针对所述失败提示消息返回的转换媒体数据,并播放所述转换媒体数据;其中,所述转换媒体数据是所述控制设备从所述流媒体播放地址请求所述流媒体数据,并对请求到的所述流媒体数据按照播放设备所支持的共享服务标准转换得到的。11.根据权利要求9所述的方法,其特征在于,所述接收控制设备针对本地媒体文件发送的媒体投屏请求之前,所述方法还包括:
接收所述控制设备发送的符合共享服务标准的媒体文件,所述媒体文件中封装了所述控制设备对应的应用列表;播放所述媒体文件。12.一种虚拟场景加载方法,其特征在于,所述方法由云端设备执行,包括:响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址;所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;将所述流媒体播放地址,返回至所述控制设备,以使所述控制设备利用所述流媒体播放地址,对本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,所述目标文件参数用于向播放设备提供请求虚拟场景的流媒体数据的流媒体播放地址;接收所述控制设备发送的用于指示开始加载所述虚拟场景的运行指令;响应于所述运行指令,对所述虚拟场景进行加载,并将所述虚拟场景对应的流媒体数据存储至所述流媒体播放地址中。13.根据权利要求12所述的方法,其特征在于,所述响应于所述运行指令,对所述虚拟场景进行加载,并将所述虚拟场景对应的流媒体数据存储至所述流媒体播放地址中之后,所述方法还包括:接收所述控制设备发送的针对所述虚拟场景中的虚拟对象的控制指令,所述控制指令用于指示云端设备控制所述虚拟对象进行所述控制操作对应的控制事件;响应于所述控制指令,对所述虚拟场景中的所述虚拟对象进行所述控制事件;其中,所述控制事件至少包括:控制所述虚拟对象在所述虚拟场景中移动的事件和控制所述虚拟对象与所述虚拟场景交互的事件。14.根据权利要求12所述的方法,其特征在于,所述响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址之前,所述方法还包括:接收所述控制设备发送的应用列表拉取请求;响应于所述应用列表拉取请求,获取所述控制设备所对应的应用列表,并将所述应用列表返回给所述控制设备。15.一种虚拟场景加载装置,其特征在于,所述装置包括:第一接收模块,用于接收第一协议的流媒体播放地址,所述流媒体播放地址是云端设备针对发送的地址拉取请求所返回的,所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;投屏请求模块,用于响应于对所述虚拟场景的加载触发操作,基于本地媒体文件向播放设备发送媒体投屏请求;第一发送模块,用于向所述云端设备发送指示开始加载虚拟场景的运行指令;所述第一接收模块,还用于接收所述播放设备针对所述媒体投屏请求所返回的参数获取请求;参数生成模块,用于响应于所述参数获取请求,获取所述本地媒体文件对应的初始文件参数;利用所述流媒体播放地址,对所述初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数;所述第一发送模块,还用于将所述目标文件参数返回给所述播放设备,以使所述播放
设备从所述目标文件参数中的流媒体播放地址,请求所述虚拟场景的流媒体数据并播放。16.一种虚拟场景加载装置,其特征在于,所述装置包括:第二接收模块,用于接收控制设备针对本地媒体文件发送的媒体投屏请求;第二发送模块,用于响应于所述媒体投屏请求,向所述控制设备返回参数获取请求;第二接收模块,还用于接收所述控制设备针对所述参数获取请求所返回的目标文件参数;数据请求模块,用于从所述目标文件参数中解析出第一协议的流媒体播放地址,其中,所述目标文件参数是通过将所述本地媒体文件所对应的初始文件参数所包含的第二协议的本地文件地址,替换为第一协议的流媒体播放地址而得到的;从所述流媒体播放地址请求虚拟场景的流媒体数据;数据播放模块,用于播放所述流媒体数据。17.一种虚拟场景加载装置,其特征在于,所述装置包括:地址生成模块,用于响应于控制设备所发送的地址拉取请求,生成第一协议的流媒体播放地址;所述地址拉取请求用于拉取提供虚拟场景的流媒体数据的播放地址;第三发送模块,用于将所述流媒体播放地址,返回至所述控制设备,以使所述控制设备利用所述流媒体播放地址,对本地媒体文件对应的初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数,所述目标文件参数用于向播放设备提供请求虚拟场景的流媒体数据的流媒体播放地址;第三接收模块,用于接收所述控制设备发送的用于指示开始加载所述虚拟场景的运行指令;数据处理模块,用于响应于所述运行指令,对所述虚拟场景进行加载,并将所述虚拟场景对应的流媒体数据存储至所述流媒体播放地址中。18.一种控制设备,其特征在于,所述控制设备包括:第一存储器,用于存储可执行指令;第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现权利要求1至8任一项所述的虚拟场景加载方法。19.一种播放设备,其特征在于,所述播放设备包括:第二存储器,用于存储可执行指令;第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现权利要求9至11任一项所述的虚拟场景加载方法。20.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被第一处理器执行时实现权利要求1至8任一项所述的虚拟场景加载方法,被第二处理器执行时实现权利要求9至11任一项所述的虚拟场景加载方法,被第三处理器执行时实现权利要求12至14任一项所述的虚拟场景加载方法。
技术总结
本申请提供了一种虚拟场景加载方法、装置、设备及存储介质;本申请实施例可以应用于云技术、人工智能、智慧交通、车载等各种场景,涉及云计算技术;该方法包括:接收第一协议的流媒体播放地址;响应于对虚拟场景的加载触发操作,基于本地媒体文件向播放设备发送媒体投屏请求,并向云端设备发送运行指令;接收播放设备所返回的参数获取请求;响应于参数获取请求,获取本地媒体文件对应的初始文件参数;利用流媒体播放地址,对初始文件参数所包含的第二协议的本地文件地址进行替换,得到目标文件参数;将目标文件参数返回给播放设备。通过本申请,能够扩大支持虚拟场景加载的设备范围。能够扩大支持虚拟场景加载的设备范围。能够扩大支持虚拟场景加载的设备范围。
技术研发人员:吴峰凯
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.03.18
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/