数据播放方法和装置、存储介质及电子装置与流程

文档序号:15937935发布日期:2018-11-14 02:41阅读:297来源:国知局
数据播放方法和装置、存储介质及电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种数据播放方法和装置、存储介质及电子装置。



背景技术:

很多游戏应用都是通过游戏引擎开发得到的。例如,在Unity游戏引擎的编辑器中对游戏应用所涉及的游戏场景进行编辑,再在终端的显示屏幕中渲染出上述游戏场景编辑后的视频画面。其中,为了预览编辑效果,往往需要在Unity游戏引擎中预览播放上述视频画面。

然而,由于Unity游戏引擎主要用于编辑,无法兼容不同的音视频格式,从而使得所播放的音视频数据可能出现无法播放或者播放卡顿的现象。也就是说,相关技术所提供的在游戏引擎中播放音视频数据的方法存在兼容性较差的问题。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据播放方法和装置、存储介质及电子装置,以至少解决由于游戏引擎无法兼容不同的音视频格式而造成的游戏引擎兼容性差的技术问题。

根据本发明实施例的一个方面,提供了一种数据播放方法,包括:在游戏引擎中加载控制插件,其中,上述控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,上述媒体播放器用于解码将要在上述游戏引擎中播放的源媒体数据;从上述第一数据缓冲获取上述媒体播放器对上述源媒体数据解码后得到的目标媒体数据;在上述游戏引擎中构建与上述目标媒体数据相匹配的媒体播放模型;将上述目标媒体数据贴到上述媒体播放模型上,以在上述游戏引擎中播放上述目标媒体数据。

根据本发明实施例的另一方面,还提供了一种数据播放装置,包括:加载单元,用于在游戏引擎中加载控制插件,其中,上述控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,上述媒体播放器用于解码将要在上述游戏引擎中播放的源媒体数据;获取单元,用于从上述第一数据缓冲获取上述媒体播放器对上述源媒体数据解码后得到的目标媒体数据;构建单元,用于在上述游戏引擎中构建与上述目标媒体数据相匹配的媒体播放模型;播放单元,用于将上述目标媒体数据贴到上述媒体播放模型上,以在上述游戏引擎中播放上述目标媒体数据。

根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据播放方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的数据播放方法。

在本发明实施例中,通过在游戏引擎中加载控制插件,其中,上述控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,上述媒体播放器用于解码将要在上述游戏引擎中播放的源媒体数据;从上述第一数据缓冲获取上述媒体播放器对上述源媒体数据解码后得到的目标媒体数据;在上述游戏引擎中构建与上述目标媒体数据相匹配的媒体播放模型;将上述目标媒体数据贴到上述媒体播放模型上,以在上述游戏引擎中播放上述目标媒体数据的方法,在上述方法中,由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果,解决了由于游戏引擎无法兼容不同的音视频格式而造成的游戏引擎兼容性差的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种数据播放方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的数据播放方法的流程示意图;

图3是根据本发明实施例的一种可选的数据播放方法的示意图;

图4是根据本发明实施例的另一种可选的数据播放方法的示意图;

图5是根据本发明实施例的又一种可选的数据播放方法的示意图;

图6是根据本发明实施例的又一种可选的数据播放方法的示意图;

图7是根据本发明实施例的又一种可选的数据播放方法的示意图;

图8是根据本发明实施例的一种可选的数据播放装置的结构示意图;

图9是根据本发明实施例的另一种可选的数据播放装置的结构示意图;

图10是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种数据播放方法,可选地,作为一种可选的实施方式,上述数据播放方法可以但不限于应用于如图1所示的环境中。媒体播放器104中包括存储器106和处理器108。媒体播放器将使用处理器108将存储于存储器106中的源媒体数据解码,得到目标媒体数据,并通过步骤S102将目标媒体数据发送给网络110,网络将目标媒体数据通过步骤S102发送给游戏引擎112。游戏引擎112中包括第一数据缓冲114与媒体播放模型116,其中,第一数据缓冲114中保存有目标媒体数据,而媒体播放模型116与目标媒体数据相匹配。媒体播放模型116通过步骤S104播放目标媒体数据。

需要说明的是,相关技术中,游戏应用通常使用游戏引擎开发。而游戏引擎开发之后,通常需要预览播放视频画面。而现有的游戏引擎无法兼容不同的音视频格式,从而存在兼容性差的问题。而本实施例中,由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果,解决了由于游戏引擎无法兼容不同的音视频格式而造成的游戏引擎兼容性差的技术问题。

可选地,上述数据播放方法可以但不限于应用于任何可以进行数据计算的硬件设备中,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述游戏引擎可以但不限于为任何可以进行计算的硬件设备。

可选地,作为一种可选的实施方式,如图2所示,上述数据播放方法包括:

S202,在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;

S204,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;

S206,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;

S208,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

可选地,上述数据播放方法可以但不限于应用于游戏测试的过程中,或者游戏开发的过程中,或者游戏引擎测试的过程中。

以下结合游戏测试的过程进行说明。上述原媒体数据可以为游戏的场景视频,在游戏测试的过程中,需要测试游戏场景视频运行是否流畅,画面是否清晰,于是,将上述游戏场景视频发送到媒体播放器中,使用媒体播放器进行解码,将解码后得到的目标媒体数据发送到游戏引擎中的第一数据缓冲中。上述第一数据缓冲通过控制插件创建。之后根据获取到的目标媒体数据在游戏引擎中匹配构建媒体播放模型,并使用构建的媒体播放模型播放目标媒体数据,从而实现在游戏引擎中可以播放游戏场景视频的效果。

需要说明的是,上述方法中由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果。

可选地,在在游戏引擎中加载控制插件之后,还包括:通过控制插件创建第一数据缓冲;建立媒体播放器的数据接口与第一数据缓冲的写入接口之间的通信链路,其中,通信链路用于将媒体播放器解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试的过程进行说明。上述通信链路可以为Native插件,上述第一数据缓冲可以为Surface。由于游戏引擎无法兼容多种音视频类型,因此,需要一个Native插件来在媒体播放器与游戏引擎之间建立通信链路,来使媒体播放器解码后的目标媒体数据可以发送并保存到游戏引擎中。如图3所示,媒体播放器302在将源媒体数据解码后,得到目标媒体数据,并通过步骤S302将目标媒体数据发送给Native插件304。Native插件304在获得上述目标媒体数据后,将上述目标媒体数据通过步骤S304存储到第一数据缓冲306中。

可选地,在建立第一数据缓冲的写入接口与媒体播放器的数据接口之间的通信链路之后,还包括:媒体播放器根据源媒体数据的数据格式,及用于运行游戏引擎的终端的设备类型,确定目标解码方式;媒体播放器通过目标解码方式解码源媒体数据,得到目标媒体数据;媒体播放器通过通信链路将解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试过程

进行说明。在媒体播放器获取到源媒体数据之后,需要对源媒体数据进行解码,而解码后的目标媒体数据的格式类型需要根据游戏引擎所在的终端的设备类型来确定。如图4所示,图4中的虚线表示游戏引擎反馈所在的终端的设备类型,而媒体播放器根据接收到的终端的设备类型决定解码方式,并将解码得到的目标媒体数据发送给游戏引擎中的第一数据缓冲。

可选地,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据包括:在第一数据缓冲的写入接口获取到目标媒体数据时,触发数据更新通知,其中,数据更新通知用于通知第一数据缓冲的输出接口第一数据缓冲中发生数据更新;在第一数据缓冲的输出接口获取到数据更新通知时,将第一数据缓冲中的目标媒体数据绘制到游戏引擎中的帧缓冲对象中。

例如,继续结合上述游戏测试过程进行说明。可选地,上述帧缓冲对象可以为FBO。在源媒体数据解码后得到目标媒体数据并将目标媒体数据发送给Surface的写入接口后,Surface的数据接口给输出接口发送数据更新通知,用于通知输出接口Surface中的数据已经进行了更新。在更新上述数据后,游戏引擎将Surface中更新的目标媒体数据绘制到FBO中,以进行播放。如图5所示,Surface504的写入接口在接收到媒体播放器502通过步骤S502发送的目标媒体数据后,通过步骤S504向输出接口发送数据更新通知,输出接口在收到数据更新通知后,通过步骤S506将目标媒体数据绘制到FBO506中。

可选地,在从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据之前,还包括:在游戏引擎中创建目标图像材质;将与目标图像材质对应的插件标识发送给控制插件;通过控制插件建立插件标识与帧缓冲对象之间的关联关系,其中,关联关系用于指示在将目标媒体数据绘制到帧缓冲对象中时,更新与插件标识对应的目标图像材质。

例如,继续结合上述游戏测试的过程进行说明。上述目标图像材质可以为Texture2D,上述插件标识而可以为Native id。游戏引擎创建Texture2D后,将与Texture2D对应的Native id发送给Native插件并进行保存,并绑定到FBO中。

可选地,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型包括:获取目标媒体数据的数据类型;从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型。

例如,继续结合上述游戏测试的过程进行说明。上述网格模型可以为Mesh,上述Mesh可以包括2D视频模型与VR全景视频模型。在获取到目标媒体数据的数据类型后,从预置的Mesh中获取与目标媒体数据的数据类型匹配的媒体播放模型。

可选地,从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型包括:在数据类型指示为二维数据的情况下,获取矩形网格模型作为媒体播放模型;在数据类型指示为三维数据的情况下,获取以下一种模型作为媒体播放模型:球形网格模型、金字塔网格模型。

例如,继续结合上述游戏测试的过程进行说明。如果获取到的目标媒体数据的数据类型为2D,则获取矩阵网格模型作为媒体播放模型,如果获取到的目标媒体数据的数据类型为VR,则获取球形网格模型或者金字塔网格模型作为媒体播放模型。

可选地,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据包括:在游戏引擎中渲染媒体播放模型;利用着色器将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

例如,继续结合上述游戏测试的过程进行说明。在获取到目标媒体数据与媒体播放模型之后,可以根据着色器将目标媒体数据贴到媒体播放模型上,从而可以使游戏引擎播放目标媒体数据。

通过本实施例,由于使用了在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据的方法,上述方法中由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果。

作为一种可选的实施方式,在在游戏引擎中加载控制插件之后,还包括:

S1,通过控制插件创建第一数据缓冲;

S2,建立媒体播放器的数据接口与第一数据缓冲的写入接口之间的通信链路,其中,通信链路用于将媒体播放器解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试的过程进行说明。上述通信链路可以为Native插件,上述第一数据缓冲可以为Surface。由于游戏引擎无法兼容多种音视频类型,因此,需要一个Native插件来在媒体播放器与游戏引擎之间建立通信链路,来使媒体播放器解码后的目标媒体数据可以发送并保存到游戏引擎中。如图3所示,媒体播放器302在将源媒体数据解码后,得到目标媒体数据,并通过步骤S302将目标媒体数据发送给Native插件304。Native插件304在获得上述目标媒体数据后,将上述目标媒体数据通过步骤S304存储到第一数据缓冲306中。

通过本实施例,通过游戏引擎创建第一数据缓冲,从而可以通过第一数据缓冲的写入接口获取目标媒体数据,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方式,在建立第一数据缓冲的写入接口与媒体播放器的数据接口之间的通信链路之后,还包括:

S1,媒体播放器根据源媒体数据的数据格式,及用于运行游戏引擎的终端的设备类型,确定目标解码方式;

S2,媒体播放器通过目标解码方式解码源媒体数据,得到目标媒体数据;

S3,媒体播放器通过通信链路将解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试过程进行说明。在媒体播放器获取到源媒体数据之后,需要对源媒体数据进行解码,而解码后的目标媒体数据的格式类型需要根据游戏引擎所在的终端的设备类型来确定。如图4所示,图4中的虚线表示游戏引擎反馈所在的终端的设备类型,而媒体播放器根据接收到的终端的设备类型决定解码方式,并将解码得到的目标媒体数据发送给游戏引擎中的第一数据缓冲。

通过本实施例,通过根据终端的设备类型,确定目标解码方式,从而可以灵活地调整解码得到的目标媒体数据,在提高游戏引擎兼容性的同时,达到了提高解码源媒体数据的灵活性的效果。

作为一种可选的实施方式,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据包括:

S1,在第一数据缓冲的写入接口获取到目标媒体数据时,触发数据更新通知,其中,数据更新通知用于通知第一数据缓冲的输出接口第一数据缓冲中发生数据更新;

S2,在第一数据缓冲的输出接口获取到数据更新通知时,将第一数据缓冲中的目标媒体数据绘制到游戏引擎中的帧缓冲对象中。

例如,继续结合上述游戏测试过程进行说明。可选地,上述帧缓冲对象可以为FBO。在源媒体数据解码后得到目标媒体数据并将目标媒体数据发送给Surface的写入接口后,Surface的数据接口给输出接口发送数据更新通知,用于通知输出接口Surface中的数据已经进行了更新。在更新上述数据后,游戏引擎将Surface中更新的目标媒体数据绘制到FBO中,以进行播放。如图5所示,Surface504的写入接口在接收到媒体播放器502通过步骤S502发送的目标媒体数据后,通过步骤S504向输出接口发送数据更新通知,输出接口在收到数据更新通知后,通过步骤S506将目标媒体数据绘制到FBO506中。

通过本实施例,通过在第一数据缓冲写入接口获取到目标媒体数据时,触发数据更新通知,通知第一数据缓冲的输出接口,从而可以输出发生更新的目标媒体数据,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方式,在从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据之前,还包括:

S1,在游戏引擎中创建目标图像材质;

S2,将与目标图像材质对应的插件标识发送给控制插件;

S3,通过控制插件建立插件标识与帧缓冲对象之间的关联关系,其中,关联关系用于指示在将目标媒体数据绘制到帧缓冲对象中时,更新与插件标识对应的目标图像材质。

例如,继续结合上述游戏测试的过程进行说明。上述目标图像材质可以为Texture2D,上述插件标识而可以为Native id。游戏引擎创建Texture2D后,将与Texture2D对应的Native id发送给Native插件并进行保存,并绑定到FBO中。

通过本实施例,通过控制插件建立插件标识与帧缓冲对象之间的关联关系,从而可以通过关联关系将目标媒体数据绘制到帧缓冲对象中,实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方式,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型包括:

S1,获取目标媒体数据的数据类型;

S2,从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型。

例如,继续结合上述游戏测试的过程进行说明。上述网格模型可以为Mesh,上述Mesh可以包括2D视频模型与VR全景视频模型。在获取到目标媒体数据的数据类型后,从预置的Mesh中获取与目标媒体数据的数据类型匹配的媒体播放模型。

通过本实施例,通过获取目标媒体数据的数据类型,以及根据目标媒体数据的数据类型获取媒体播放模型,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方式,从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型包括:

S1,在数据类型指示为二维数据的情况下,获取矩形网格模型作为媒体播放模型;

S2,在数据类型指示为三维数据的情况下,获取以下一种模型作为媒体播放模型:球形网格模型、金字塔网格模型。

例如,继续结合上述游戏测试的过程进行说明。如果获取到的目标媒体数据的数据类型为2D,则获取矩阵网格模型作为媒体播放模型,如果获取到的目标媒体数据的数据类型为3D,例如为VR,则获取球形网格模型或者金字塔网格模型作为媒体播放模型。

如图6、7所示,图6为一种可选的矩形网格模型,属于二维网络模型的一种,而图7为一种球形网格模型,为三维网络模型的一种。

通过本实施例,通过对数据类型进行分类,分为二维数据与三维数据,从而在提高游戏引擎兼容性的同时,提高了游戏引擎的播放目标媒体数据的灵活性。

作为一种可选的实施方式,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据包括:

S1,在游戏引擎中渲染媒体播放模型;

S2,利用着色器将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

例如,继续结合上述游戏测试的过程进行说明。在获取到目标媒体数据与媒体播放模型之后,可以根据着色器将目标媒体数据贴到媒体播放模型上,从而可以使游戏引擎播放目标媒体数据。

通过本实施例,通过渲染媒体播放模型,从而使目标媒体数据贴到媒体播放模型上,以播放目标媒体模型,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

可选地,以下继续结合游戏测试的过程,对上述数据播放方法进行整体说明。

在上述数据播放方法中,媒体播放器、游戏引擎与Native插件的详细交互流程如下:

游戏引擎初始化Native插件,在初始化Native插件时,需要创建一个子线程,并创建Surface以及对应的写入接口与输出接口,并创建FBO备用。之后,媒体播放器根据要播放的目标媒体数据的数据类型及硬件格式选择合适的解码器以及解码方式,并对源媒体数据进行解码得到目标媒体数据,并将目标媒体数据更新到Surface中。在媒体播放器解码的同时,游戏引擎将创建的Texture2D的Native id传给Native插件,Native插件保存上述Native id并存入FBO中。在媒体播放器将目标媒体文件更新到Surface时,相应的输出接口会受到数据更新通知,在收到数据更新通知后,将目标媒体数据绘制到FBO中,游戏引擎对目标媒体数据中的每一帧进行渲染,得到可以由游戏引擎进行播放的视频文件。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述数据播放方法的数据播放装置,如图8所示,该装置包括:

(1)加载单元802,用于在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;

(2)获取单元804,用于从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;

(3)构建单元806,用于在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;

(4)播放单元808,用于将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

可选地,上述数据播放装置可以但不限于应用于游戏测试的过程中,或者游戏开发的过程中,或者游戏引擎测试的过程中。

以下结合游戏测试的过程进行说明。上述原媒体数据可以为游戏的场景视频,在游戏测试的过程中,需要测试游戏场景视频运行是否流畅,画面是否清晰,于是,将上述游戏场景视频发送到媒体播放器中,使用媒体播放器进行解码,将解码后得到的目标媒体数据发送到游戏引擎中的第一数据缓冲中。上述第一数据缓冲通过控制插件创建。之后根据获取到的目标媒体数据在游戏引擎中匹配构建媒体播放模型,并使用构建的媒体播放模型播放目标媒体数据,从而实现在游戏引擎中可以播放游戏场景视频的效果。

需要说明的是,上述方法中由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果。

可选地,在在游戏引擎中加载控制插件之后,还包括:通过控制插件创建第一数据缓冲;建立媒体播放器的数据接口与第一数据缓冲的写入接口之间的通信链路,其中,通信链路用于将媒体播放器解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试的过程进行说明。上述通信链路可以为Native插件,上述第一数据缓冲可以为Surface。由于游戏引擎无法兼容多种音视频类型,因此,需要一个Native插件来在媒体播放器与游戏引擎之间建立通信链路,来使媒体播放器解码后的目标媒体数据可以发送并保存到游戏引擎中。如图3所示,媒体播放器302在将源媒体数据解码后,得到目标媒体数据,并通过步骤S302将目标媒体数据发送给Native插件304。Native插件304在获得上述目标媒体数据后,将上述目标媒体数据通过步骤S304存储到第一数据缓冲306中。

可选地,在建立第一数据缓冲的写入接口与媒体播放器的数据接口之间的通信链路之后,还包括:媒体播放器根据源媒体数据的数据格式,及用于运行游戏引擎的终端的设备类型,确定目标解码方式;媒体播放器通过目标解码方式解码源媒体数据,得到目标媒体数据;媒体播放器通过通信链路将解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试过程进行说明。在媒体播放器获取到源媒体数据之后,需要对源媒体数据进行解码,而解码后的目标媒体数据的格式类型需要根据游戏引擎所在的终端的设备类型来确定。如图4所示,图4中的虚线表示游戏引擎反馈所在的终端的设备类型,而媒体播放器根据接收到的终端的设备类型决定解码方式,并将解码得到的目标媒体数据发送给游戏引擎中的第一数据缓冲。

可选地,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据包括:在第一数据缓冲的写入接口获取到目标媒体数据时,触发数据更新通知,其中,数据更新通知用于通知第一数据缓冲的输出接口第一数据缓冲中发生数据更新;在第一数据缓冲的输出接口获取到数据更新通知时,将第一数据缓冲中的目标媒体数据绘制到游戏引擎中的帧缓冲对象中。

例如,继续结合上述游戏测试过程进行说明。可选地,上述帧缓冲对象可以为FBO。在源媒体数据解码后得到目标媒体数据并将目标媒体数据发送给Surface的写入接口后,Surface的数据接口给输出接口发送数据更新通知,用于通知输出接口Surface中的数据已经进行了更新。在更新上述数据后,游戏引擎将Surface中更新的目标媒体数据绘制到FBO中,以进行播放。如图5所示,Surface504的写入接口在接收到媒体播放器502通过步骤S502发送的目标媒体数据后,通过步骤S504向输出接口发送数据更新通知,输出接口在收到数据更新通知后,通过步骤S506将目标媒体数据绘制到FBO506中。

可选地,在从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据之前,还包括:在游戏引擎中创建目标图像材质;将与目标图像材质对应的插件标识发送给控制插件;通过控制插件建立插件标识与帧缓冲对象之间的关联关系,其中,关联关系用于指示在将目标媒体数据绘制到帧缓冲对象中时,更新与插件标识对应的目标图像材质。

例如,继续结合上述游戏测试的过程进行说明。上述目标图像材质可以为Texture2D,上述插件标识而可以为Native id。游戏引擎创建Texture2D后,将与Texture2D对应的Native id发送给Native插件并进行保存,并绑定到FBO中。

可选地,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型包括:获取目标媒体数据的数据类型;从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型。

例如,继续结合上述游戏测试的过程进行说明。上述网格模型可以为Mesh,上述Mesh可以包括2D视频模型与VR全景视频模型。在获取到目标媒体数据的数据类型后,从预置的Mesh中获取与目标媒体数据的数据类型匹配的媒体播放模型。

可选地,从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型包括:在数据类型指示为二维数据的情况下,获取矩形网格模型作为媒体播放模型;在数据类型指示为三维数据的情况下,获取以下一种模型作为媒体播放模型:球形网格模型、金字塔网格模型。

例如,继续结合上述游戏测试的过程进行说明。如果获取到的目标媒体数据的数据类型为2D,则获取矩阵网格模型作为媒体播放模型,如果获取到的目标媒体数据的数据类型为VR,则获取球形网格模型或者金字塔网格模型作为媒体播放模型。

可选地,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据包括:在游戏引擎中渲染媒体播放模型;利用着色器将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

例如,继续结合上述游戏测试的过程进行说明。在获取到目标媒体数据与媒体播放模型之后,可以根据着色器将目标媒体数据贴到媒体播放模型上,从而可以使游戏引擎播放目标媒体数据。

通过本实施例,由于使用了在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据的方法,上述方法中由于在游戏引擎中加载了控制插件,以及控制插件创建了与媒体播放器进行数据交互的第一数据缓冲,从而可以通过第一数据缓冲获取到目标媒体文件,并通过构建的媒体播放模型播放目标媒体文件。也就是说,在上述方法中,通过控制插件创建第一数据缓冲来接收目标媒体数据,并通过构建的媒体播放模型来播放目标媒体数据,从而可以播放不同类型的音视频,实现了游戏引擎兼容不同的音视频格式的效果。

作为一种可选的实施方案,上述装置还包括:

(1)创建单元,用于在在游戏引擎中加载控制插件之后,通过控制插件创建第一数据缓冲;

(2)建立单元,用于建立媒体播放器的数据接口与第一数据缓冲的写入接口之间的通信链路,其中,通信链路用于将媒体播放器解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试的过程进行说明。上述通信链路可以为Native插件,上述第一数据缓冲可以为Surface。由于游戏引擎无法兼容多种音视频类型,因此,需要一个Native插件来在媒体播放器与游戏引擎之间建立通信链路,来使媒体播放器解码后的目标媒体数据可以发送并保存到游戏引擎中。如图3所示,媒体播放器302在将源媒体数据解码后,得到目标媒体数据,并通过步骤S302将目标媒体数据发送给Native插件304。Native插件304在获得上述目标媒体数据后,将上述目标媒体数据通过步骤S304存储到第一数据缓冲306中。

通过本实施例,通过游戏引擎创建第一数据缓冲,从而可以通过第一数据缓冲的写入接口获取目标媒体数据,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方案,上述装置还包括:

(1)确定单元,用于在建立第一数据缓冲的写入接口与媒体播放器的数据接口之间的通信链路之后,媒体播放器根据源媒体数据的数据格式,及用于运行游戏引擎的终端的设备类型,确定目标解码方式;

(2)解码单元,用于媒体播放器通过目标解码方式解码源媒体数据,得到目标媒体数据;

(3)发送单元,用于媒体播放器通过通信链路将解码后的目标媒体数据发送至第一数据缓冲。

例如,继续结合上述游戏测试过程进行说明。在媒体播放器获取到源媒体数据之后,需要对源媒体数据进行解码,而解码后的目标媒体数据的格式类型需要根据游戏引擎所在的终端的设备类型来确定。如图4所示,图4中的虚线表示游戏引擎反馈所在的终端的设备类型,而媒体播放器根据接收到的终端的设备类型决定解码方式,并将解码得到的目标媒体数据发送给游戏引擎中的第一数据缓冲。

通过本实施例,通过根据终端的设备类型,确定目标解码方式,从而可以灵活地调整解码得到的目标媒体数据,在提高游戏引擎兼容性的同时,达到了提高解码源媒体数据的灵活性的效果。

作为一种可选的实施方案,如图9所示,上述获取单元804包括:

(1)触发模块902,用于在第一数据缓冲的写入接口获取到目标媒体数据时,触发数据更新通知,其中,数据更新通知用于通知第一数据缓冲的输出接口第一数据缓冲中发生数据更新;

(2)绘制模块904,用于在第一数据缓冲的输出接口获取到数据更新通知时,将第一数据缓冲中的目标媒体数据绘制到游戏引擎中的帧缓冲对象中。

例如,继续结合上述游戏测试过程进行说明。可选地,上述帧缓冲对象可以为FBO。在源媒体数据解码后得到目标媒体数据并将目标媒体数据发送给Surface的写入接口后,Surface的数据接口给输出接口发送数据更新通知,用于通知输出接口Surface中的数据已经进行了更新。在更新上述数据后,游戏引擎将Surface中更新的目标媒体数据绘制到FBO中,以进行播放。如图5所示,Surface504的写入接口在接收到媒体播放器502通过步骤S502发送的目标媒体数据后,通过步骤S504向输出接口发送数据更新通知,输出接口在收到数据更新通知后,通过步骤S506将目标媒体数据绘制到FBO506中。

通过本实施例,通过在第一数据缓冲写入接口获取到目标媒体数据时,触发数据更新通知,通知第一数据缓冲的输出接口,从而可以输出发生更新的目标媒体数据,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方案,上述获取单元804还包括:

(1)创建模块,用于在从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据之前,在游戏引擎中创建目标图像材质;

(2)发送模块,用于将与目标图像材质对应的插件标识发送给控制插件;

(3)建立模块,用于通过控制插件建立插件标识与帧缓冲对象之间的关联关系,其中,关联关系用于指示在将目标媒体数据绘制到帧缓冲对象中时,更新与插件标识对应的目标图像材质。

例如,继续结合上述游戏测试的过程进行说明。上述目标图像材质可以为Texture2D,上述插件标识而可以为Native id。游戏引擎创建Texture2D后,将与Texture2D对应的Native id发送给Native插件并进行保存,并绑定到FBO中。

通过本实施例,通过控制插件建立插件标识与帧缓冲对象之间的关联关系,从而可以通过关联关系将目标媒体数据绘制到帧缓冲对象中,实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方案,上述构建单元806包括:

(1)第一获取模块,用于获取目标媒体数据的数据类型;

(2)第二获取模块,用于从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型。

例如,继续结合上述游戏测试的过程进行说明。上述网格模型可以为Mesh,上述Mesh可以包括2D视频模型与VR全景视频模型。在获取到目标媒体数据的数据类型后,从预置的Mesh中获取与目标媒体数据的数据类型匹配的媒体播放模型。

通过本实施例,通过获取目标媒体数据的数据类型,以及根据目标媒体数据的数据类型获取媒体播放模型,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

作为一种可选的实施方案,上述第二获取模块包括:

(1)第一获取子模块,用于在数据类型指示为二维数据的情况下,获取矩形网格模型作为媒体播放模型;

(2)第二获取子模块,用于在数据类型指示为三维数据的情况下,获取以下一种模型作为媒体播放模型:球形网格模型、金字塔网格模型。

例如,继续结合上述游戏测试的过程进行说明。如果获取到的目标媒体数据的数据类型为2D,则获取矩阵网格模型作为媒体播放模型,如果获取到的目标媒体数据的数据类型为3D,例如为VR,则获取球形网格模型或者金字塔网格模型作为媒体播放模型。

如图6、7所示,图6为一种可选的矩形网格模型,属于二维网络模型的一种,而图7为一种球形网格模型,为三维网络模型的一种。

通过本实施例,通过对数据类型进行分类,分为二维数据与三维数据,从而在提高游戏引擎兼容性的同时,提高了游戏引擎的播放目标媒体数据的灵活性。

作为一种可选的实施方案,上述播放单元808包括:

(1)渲染模块,用于在游戏引擎中渲染媒体播放模型;

(2)播放模块,用于利用着色器将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

例如,继续结合上述游戏测试的过程进行说明。在获取到目标媒体数据与媒体播放模型之后,可以根据着色器将目标媒体数据贴到媒体播放模型上,从而可以使游戏引擎播放目标媒体数据。

通过本实施例,通过渲染媒体播放模型,从而使目标媒体数据贴到媒体播放模型上,以播放目标媒体模型,从而实现了游戏引擎可以兼容不同的音视频格式,达到了提高游戏引擎兼容性的效果。

可选地,以下继续结合游戏测试的过程,对上述数据播放方法进行整体说明。

在上述数据播放方法中,媒体播放器、游戏引擎与Native插件的详细交互流程如下:

游戏引擎初始化Native插件,在初始化Native插件时,需要创建一个子线程,并创建Surface以及对应的写入接口与输出接口,并创建FBO备用。之后,媒体播放器根据要播放的目标媒体数据的数据类型及硬件格式选择合适的解码器以及解码方式,并对源媒体数据进行解码得到目标媒体数据,并将目标媒体数据更新到Surface中。在媒体播放器解码的同时,游戏引擎将创建的Texture2D的Native id传给Native插件,Native插件保存上述Native id并存入FBO中。在媒体播放器将目标媒体文件更新到Surface时,相应的输出接口会受到数据更新通知,在收到数据更新通知后,将目标媒体数据绘制到FBO中,游戏引擎对目标媒体数据中的每一帧进行渲染,得到可以由游戏引擎进行播放的视频文件。

根据本发明实施例的又一个方面,还提供了一种用于实施上述数据播放方法的电子装置,如图10所示,该电子装置包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;

S2,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;

S3,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;

S4,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。

其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的数据播放方法与装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据播放方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1002用于存储目标媒体数据等内容。

根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在游戏引擎中加载控制插件,其中,控制插件用于创建与媒体播放器进行数据交互的第一数据缓冲,媒体播放器用于解码将要在游戏引擎中播放的源媒体数据;

S2,从第一数据缓冲获取媒体播放器对源媒体数据解码后得到的目标媒体数据;

S3,在游戏引擎中构建与目标媒体数据相匹配的媒体播放模型;

S4,将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,通过控制插件创建第一数据缓冲;

S2,建立媒体播放器的数据接口与第一数据缓冲的写入接口之间的通信链路,其中,通信链路用于将媒体播放器解码后的目标媒体数据发送至第一数据缓冲。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,媒体播放器根据源媒体数据的数据格式,及用于运行游戏引擎的终端的设备类型,确定目标解码方式;

S2,媒体播放器通过目标解码方式解码源媒体数据,得到目标媒体数据;

S3,媒体播放器通过通信链路将解码后的目标媒体数据发送至第一数据缓冲。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在第一数据缓冲的写入接口获取到目标媒体数据时,触发数据更新通知,其中,数据更新通知用于通知第一数据缓冲的输出接口第一数据缓冲中发生数据更新;

S2,在第一数据缓冲的输出接口获取到数据更新通知时,将第一数据缓冲中的目标媒体数据绘制到游戏引擎中的帧缓冲对象中。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在游戏引擎中创建目标图像材质;

S2,将与目标图像材质对应的插件标识发送给控制插件;

S3,通过控制插件建立插件标识与帧缓冲对象之间的关联关系,其中,关联关系用于指示在将目标媒体数据绘制到帧缓冲对象中时,更新与插件标识对应的目标图像材质。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,获取目标媒体数据的数据类型;

S2,从游戏引擎中预配置的网格模型中,获取与数据类型相匹配的媒体播放模型。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在数据类型指示为二维数据的情况下,获取矩形网格模型作为媒体播放模型;

S2,在数据类型指示为三维数据的情况下,获取以下一种模型作为媒体播放模型:球形网格模型、金字塔网格模型。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在游戏引擎中渲染媒体播放模型;

S2,利用着色器将目标媒体数据贴到媒体播放模型上,以在游戏引擎中播放目标媒体数据。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1