一种动画播放方法、装置、终端设备及服务器转让专利

申请号 : CN201910691405.7

文献号 : CN110493456B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄鹏飞王超

申请人 : 创新先进技术有限公司

摘要 :

本说明书实施例提供一种动画播放方法、装置、终端设备及服务器。将动画文件的文件内容基于功能效果分类并标记,当需要播放动画文件时,获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,根据性能参数确定是否对所述动画文件的文件内容进行删减;如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。通过这种删减动画文件的文件内容的方式,可以实现同一份动画文件在不同性能的终端设备上流畅播放,无需预先制作多份动画文件,也无需加载多份动画文件,既方便操作,也节约了系统资源。

权利要求 :

1.一种动画播放方法,所述方法包括:

获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;

基于所述性能参数确定是否对所述动画文件的文件内容进行删减;

如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放,其中,所述待删减的文件内容包括所述动画文件中的一个或多个图层。

2.根据权利要求1所述的动画播放方法,如果基于所述性能参数确定无需对所述动画文件的文件内容进行删减,则所述动画文件直接用于播放。

3.根据权利要求1所述的动画播放方法,所述动画文件为json格式的文件。

4.根据权利要求3所述的动画播放方法,所述动画文件为lottie文件。

5.根据权利要求4所述的动画播放方法,所述待删减的文件内容包括layers中的部分图层和/或assests中的部分图层。

6.根据权利要求3所述的动画播放方法,将所述待删减的文件内容删除后用于播放包括:从所述动画文件中删除所述待删减的文件内容;

根据所述终端设备的操作系统将删减后的动画文件解析并渲染,以使所述终端设备播放解析并渲染后的动画文件。

7.根据权利要求1所述的动画播放方法,所述性能参数包括终端设备的机型、终端设备CPU型号、终端设备的GPU型号、终端设备的操作系统和/或终端设备的内存参数。

8.根据权利要求1所述的动画播放方法,是否对所述动画文件的文件内容进行删减以及所述待删减的文件内容基于预先确定的终端设备的性能参数与动画文件的文件内容的对应关系确定。

9.根据权利要求8所述的动画播放方法,所述待删减的文件内容用所述性能参数对应的标识标记。

10.根据权利要求1-9任意一项所述的动画播放方法,所述方法由播放所述动画文件的终端设备执行,在获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数之前,还包括:检测动画文件播放指令。

11.根据权利要求1-9任意一项所述的动画播放方法,所述方法由服务端执行,获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数之前,还包括:接收所述终端设备的动画文件获取请求,所述动画文件获取请求携带有所述终端设备的性能参数。

12.根据权利要求11所述的动画播放方法,在接收所述动画文件获取请求之后,还包括:将所述性能参数与所述终端设备的设备标识关联存储。

13.一种动画播放装置,所述装置包括:

获取模块,用于获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;

判断模块,用于基于所述性能参数确定是否对所述动画文件的文件内容进行删减;

删减模块,用于如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放,其中,所述待删减的文件内容包括所述动画文件中的一个或多个图层。

14.一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。

15.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至9以及11-12任意一项所述的方法。

说明书 :

一种动画播放方法、装置、终端设备及服务器

技术领域

[0001] 本说明书涉及电子技术领域,尤其涉及一种动画播放方法、装置、终端设备及服务器。

背景技术

[0002] 相比于静态的图片,动画更加形象生动,可以带来更好的展示效果,因而动画被广泛用于各种页面,比如用于各种广告、聊天表情等。但是由于播放动画文件的终端设备的性能不一样,因而其可以流畅播放的动画文件也不一样。比如,对于一份效果较好、质量较高的动画文件,性能较好的手机可以流畅播放,但是在性能较差的手机上播放则会出现卡顿现象。为了让不同性能的终端设备可以流畅的播放动画文件,尽可能达到较好的展示效果和播放流畅度,需要对动画播放方法加以改进。

发明内容

[0003] 基于此,本说明书提供了一种动画播放方法、装置、终端设备及服务器。
[0004] 根据本说明书实施例的第一方面,提供一种动画播放方法,包括:
[0005] 获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;
[0006] 基于所述性能参数确定是否对所述动画文件的文件内容进行删减;
[0007] 如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。
[0008] 根据本说明书实施例的第二方面,提供一种动画播放装置,所述装置包括:
[0009] 获取模块,用于获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;
[0010] 判断模块,用于基于所述性能参数确定是否对所述动画文件的文件内容进行删减;
[0011] 删减模块,用于如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。
[0012] 根据本说明书实施例的第三方面,提供一种终端设备,所述终端设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
[0013] 根据本说明书实施例的第四方面,提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
[0014] 应用本说明书实施例方案,将动画文件的文件内容基于功能效果分类并标记,当需要播放动画文件时,获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,根据性能参数确定是否对所述动画文件的文件内容进行删减;如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。通过这种删减动画文件的文件内容的方式,可以实现同一份动画文件在不同性能的终端设备上流畅播放,无需预先制作多份动画文件,也无需加载多份动画文件,既方便操作,也节约了系统资源。
[0015] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

[0016] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0017] 图1是本说明书一个实施例的一种播放动画文件的示意图。
[0018] 图2是本说明书一个实施例的一种动画播放方法流程图。
[0019] 图3是本说明书一个实施例的一种lottie文件结构示意图。
[0020] 图4是本说明书一个实施例的一种动画播放方法流程图。
[0021] 图5是本说明书一个实施例的一种动画播放装置的逻辑结构示意图。
[0022] 图6是本说明书一个实施例的用于实施本说明书方法的终端设备的结构示意图。
[0023] 图7是本说明书一个实施例的用于实施本说明书方法的服务器的结构示意图。

具体实施方式

[0024] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0025] 在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0026] 应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0027] 动画由于其动态效果生动形象,可以带来更好的展示效果,因而被用于各种页面当中,比如用于各类页面里面的广告、聊天表情等。由于效果越好、质量越高的动画文件其占用的系统资源也越多,而播放动画文件的终端设备的性能不一样,因而其可以流畅播放的动画文件也不一样。比如,对于一份效果较好、质量较高的动画文件,性能较好的手机可以流畅播放,但是在性能较差的手机上播放则会出现卡顿现象。
[0028] 为了让动画文件可以适配不同性能的手机,一般一个动画需要预先配置多份质量不一样的动画文件,举个例子,为了动画可以在不同性能的手机上流畅播放,在制作动画文件时,需要针对高性能手机、中等性能手机以及低性能手机分别制作三份质量由高至低的动画文件,如图1所示,在播放时,需要根据手机的性能参数重新加载适配手机性能的文件,比如加载动画文件后,如果判断手机不是高端机,则需要重新加载中质量的动画文件或低质量的动画文件来替换原来的高质量的动画文件。这种预先配置多份动画文件的方法无疑会增加动画制作的工作量,且多次加载适配终端性能的动画文件也会增加网络流量。
[0029] 基于此,本说明书实施例提供一种动画播放方法,事先将动画文件中的文件内容按照具体的功能效果划分成不同的类别并添加相应的标记,当需要播放动画文件时,根据播放所述动画文件的终端设备的性能参数确定是否要对所述动画文件的内容进行删减,如果需要,则确定待删减的文件内容,然后将动画文件中的待删减的文件内容删除后用于播放。这样便可以实现同一份文件适配不同性能的终端设备。
[0030] 具体的,所述方法的流程图如图2所示,所述方法可包括:
[0031] 202、获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;
[0032] 204、基于所述性能参数确定是否对所述动画文件的文件内容进行删减;
[0033] 206、如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。
[0034] 本说明书实施例提供的动画播放方可以用于播放动画文件的终端设备,也可以用于给终端设备下发动画文件的服务器端,其中,终端设备可以是手机、平板、笔记本电脑、台式电脑等各种设备,该动画播放方法可以用于各种浏览器或APP页面的动画播放。
[0035] 在某些实施例中,该动画播放方法可以用于播放所述待播放的动画文件的终端设备,终端设备在检测到动画播放指令的时候,可以从服务端去获取待播放的动画文件。一般而言,该动画文件是事先制备好的质量较高、完整的包含动画所有功能效果对应的文件内容的动画文件,该动画文件需性能较高的终端设备才可以流畅播放。并且,为了在播放时可以根据终端设备的性能参数确定哪些文件内容是可以删除的,该动画文件的文件内容可以预先按照其具体的功能效果分类并标记。比如,一个动画文件可能包含不同的图层,每个图层所对应的功能效果是不一样的,有些图层是展示动画必备的,而有些图层的作用可能只是为了增强动画的展示效果。因此,对于某些性能较差的终端设备,为了使其流畅的播放动画文件,可以牺牲一些展示效果,将一些只是增强播放效果的图层删除后再给终端设备播放。为了便于确定可以删除动画文件中的哪些文件内容,可以预先将动画文件的文件内容按照功能效果分类并添加相应的标记,比如可以给各图层添加用于指示“动画展示必备”或“增加动画效果”等功能的标识来对各图层加以区分。
[0036] 一般而言,对于描述性文件,可以比较方便地将文件内容进行分类和标记,所以,在某些实施例中,所述动画文件可以是json格式的动画文件。比如,可以是lottie文件。lottie是Airbnb开源的一个支持Android、iOS以及ReactNative并且利用json文件的方式快速实现动画效果的库。用户在AE软件绘制好动画后,即可以通过lottie将动画转换为json格式的动画文件,我们称之为lottie文件,当需要播放该动画时,可以直接加载该lottie文件,lottie会根据设备对应的操作系统对该lottie文件进行解析和渲染,然后便可以播放。如图3所示,为json格式的lottie文件的一个外层数据结构示意图,从图中可知,lottie文件包含几部分的文件内容,其中“layers”表示该动画文件的图层,“assests”表示该动画文件的资源信息,在某些实施例中,如果动画文件是lottie文件的话,待删除的文件内容可以是“layers”里面的部分图层或者是“assests”里面的部分图层。
[0037] 在获取到待播放的动画文件后,终端设备可以获取自己的性能参数。在某些实施例中,性能参数可以是终端设备的机型、终端设备的CPU型号、终端设备的GPU型号、终端设备的操作系统以及终端设备的内存参数中的一种或多种。在获取性能参数后,终端设备可以根据性能参数确定是否与该动画文件的文件内容适配,由于动画文件质量较高的动画文件,终端设备的性能如果与该动画文件不适配,则说明该终端设备无法流畅的播放该动画文件,因而可以对该动画文件中的文件内容进行删减,以便减小动画文件的所消耗的内存,使其能够在终端设备上流畅地播放。由于不同性参数的终端设备所能流畅播放的动画文件所包含的内容不一样,因此,在删除动画文件的文件内容之前,还需根据终端设备的性能参数以及动画文件中的文件内容的标记确定待删除的文件内容有哪些,然后再将确定的待删减的文件内容删除后再播放。举个例子,终端设备可以读取自身的CPU的型号,根据CPU型号确定CPU的内核数,如果是四核,则认其性能较好,可以播放质量较高的动画文件,因而无需对动画文件的文件内容进行删减,如果是双核,则认为其性能一般,因而可以从动画文件中删除小部分仅用于增强展示效果的文件内容,当然,如果CPU是单核,则认为其性能较差,因而需要删除大部分用于增效展示效果的文件内容。当然,以上是为了方便理解列举的一个较为简单的例子,实际操作时,可以将终端设备的各种性能参数结合起来考虑,删除的文件内容也可以根据文件内容的功能效果以及所起的作用具体去分类和标记,并提前确定好不同性能的终端可以删除的文件内容包括哪些部分,做好相应标记。以便播放时可以根据性能参数和文件内容标记快速确定好待删减的文件内容并删除。
[0038] 举个例子,一个烟花的动画场景的lottie的文件,该lottie文件中的图层包含以下几类:1、基本的烟花形状(比如:烟花形状图片、颜色、轨迹数据);2、光效(比如:烟花形状在轨迹中显示的光晕图片和数据);3、粒子(比如:大量光点的图片、颜色、轨迹数据)。但某些情况下,可以综合考虑手机的各项性能参数将手机划分为高端机、中端机和低端机,对于高端机,可以流畅播放包含上述3个图层的动画文件,对于中端机,则可以删除粒子的部分,因为这部分只是为了增加效果,去掉了依然可以看出来是烟花,只不过稍微没有闪烁粒子时那么绚丽,展示效果相比完整的动画文件稍差一些,但不影响动画效果,这样中端机也可以流畅播放。对于低端机来说,可以删除粒子和光效的部分,去除这两部分,单纯从形状上依然可以看出来是烟花,虽然牺牲了展示效果,但却降低了在手机上渲染需要耗费的性能,使得在低端机中也可以流畅播放。
[0039] 在某些实施例中,可以预先采用不同性能参数的终端设备播放包含不同文件内容的动画文件,进行大量的试验,观察其播放过程的流畅度,然后得到终端设备的性能参数与动画文件的文件内容的对应关系。当获取到动画文件以及终端设备的性能参数后,可以根据预先确定的终端设备的性能参数与动画文件的文件内容的对应关系来确定是否需要对动画文件的文件内容进行删减,如果需要删减的话,待删减的文件内容是哪些。其中,终端设备的性能参数与动画文件的文件内容的对应关系可以通过大量的测试来确定,比如,可以采用不同性能参数的终端设备去播放删减了不同功能的文件内容的动画文件,观察其流畅度,如果流畅,则认为该性能参数与该文件内容适配。举个例子,我们可以用机型1、机型2、机型3三种类型的手机来播放删减了不同功能的文件内容的动画文件,进行大量的测试,假设最初的动画文件包括A、B、C、D四类功能的文件内容,测试发现机型1的手机可以流畅的播放完整的动画文件,记为动画文件(A、B、C、D),机型2的手机可以流畅播放包含A、B、C三种功能的文件内容的动画文件,记为动画文件(A、B、C),而机型3的手机只能流畅播放包含A、B两中功能的动画化文件,记为动画文件(A、B),因而可以得到机型型号与动画文件的文件内容的一个对应关系,(机型1-ABCD,机型2-ABC,机型3-AB)。我们可以预先对动画文件的文件内容按照功能效果分类并添加标记,当接收到动画文件播放指令时,可以获取动画文件和手机的机型型号,如果手机型号为机型1,则无需删减文件内容,直接播放。如果手机型号为机型2,则根据性能参数和文件内容的对应关系,可以确定需要删除功能D对应的文件内容D,因而可以将动画文件中的文件内容D删除后再播放。如果手机型号为机型3,则根据性能参数和文件内容的对应关系,可以确定需要删除功能C、D对应的文件内容C,和文件内容D,因而可以将动画文件中的文件内容C和D删除后再播放。
[0040] 在某些情况下,为了可以快速的从动画文件的文件内容中删除待删除的文件内容,在标记文件内容时,可以用与性能参数对应的标识来标记待删减的文件内容。比如动画文件的文件内容A、B、C、D可以用机型型号对应的标识来标记待删减的文件内容,比如,用数字2来标识机型2,而机型2需要删减的内容为D,则在D后面标记2,记为D2,这样便知道如果确定终端设备的机型为2,则可以将文件内容D删除。当然,上述标记方式只是本说明书列举的一个简单的例子,具体采用何种标记方式可以根据实际需求灵活设置,只需要可以根据标记确定出某种性能的手机对应的待删除的文件内容即可,本说明书不作限制。
[0041] 当确定好是否需要对动画文件删减以及待删减的文件内容后,终端设备便可以播放原动画文件或者删减后的动画文件。在某些实施例中,如果所述动画文件为lottie文件,如果确定无需对动画文件进行删减,则可以根据终端设备的操作系统将动画文件进行解析和渲染,以使解析和渲染的动画文件可以适配终端设备的操作系统,在终端设备中播放。如果需要对动画文件进行删减,则将动画文件的待删减文件内容删除后,再根据终端设备的操作系统将删减后的动画文件进行解析和渲染,以便在终端设备中播放。
[0042] 在某些实施例中,本说明书提供的动画播放方法也可以用于为播放动画文件的终端设备下发动画文件的服务器端。当终端设备接收到播放动画文件的请求时,会向服务器端发送动画文件获取请求,其中,获取请求中会携带该终端设备的性能参数。服务器端接收到获取请求和性能参数后,会获取对应的动画文件,并根据性能参数确定是否需要对动画文件的文件内容进行删减,如果要删减,则确定待删减的文件内容,然后将待删减的文件内容删除后,再发送给终端设备,以便该终端设备播放。
[0043] 为了避免终端设备每次在发送动画文件获取请求时,都要向服务器端发送性能参数,在某些实施例中,服务器端在首次收到终端设备的性能参数后,可以将该性能参数与终端设备的设备标识关联存储。这样,在下一次接收到该终端设备的动画文件获取请求时,可以从请求中获取终端设备的设备标识,然后根据设备标识确定该终端设备的性能参数。这样,终端设备便无需每次获取动画文件时,都要向服务器端发送性能参数。
[0044] 通过这种方法,可以保证获取的同一份动画文件可以在不同性能的终端设备上流畅播放,且在动画文件制作的时候只需制作一份动画文件,无需制作多份,在加载动画文件时,也只需加载一份,无需加载多份,既方便操作,也节省系统资源。
[0045] 当然,在某些实施例中,有些终端设备的性能可能比较差,即便是进行删减过的动画文件,也无法流畅的播放,这时候,为了保证文件可以播放,不影响展示效果,可以对该动画文件进行降级处理,比如,可以预先在动画文件中选取指定帧图像,并对其进行标记,该指定帧图像是可以比较好的展现动画文件的展示效果的图像帧,在终端设备获取到待播放的文件后,可以先基于终端设备的性能参数判断终端设备是否支持动画文件的播放,如果不支持,则从动画文件中获取该指定帧图像,并将所述指定帧图像转换为图片文件,比如可以转换成jpg、png、jpeg、gif等格式的图片文件,然后再加载图片展示控件展示该图片文件。
[0046] 其中,为了准确地判定终端设备是否支持动画文件的播放,可以预先对不同性能参数的终端设备进行测试,以便确定终端设备的性能参数与支持播放的文件类型的对应关系。举个例子,可以采用不同机型的手机去播放lottie文件,然后得出各种机型是否支持lottie文件播放。当然,也可以采用其他的性能参数或多个性能参数综合起来判定,最终便可以得到一个性能参数与支持播放的文件类型的关系列表。在判定终端设备是否支持动画文件的播放时,可以参考该列表进行判定。
[0047] 在某些实施例中,终端设备从服务端获取待播放的文件之后,可以先判断所述待播放文件是图片文件还是动画文件,如果是图片文件,则可以直接加载图片展示控件展示该图片文件,其中,图片文件一般为jpg、png、jpeg、gif等格式的文件,因此可以根据文件的格式来判定是否为图片文件。如果判定待播放文件是动画文件,则可以判断终端设备是否支持动画文件的播放。其中,判断待待播放文件是否为动画文件可以根据各类动画文件所具有的特征来判定,比如,可以根据待播放文件的后缀名以及文件中包含的字段来确定,如果待播放文件的后缀名为指定的后缀名且文件中包含指定的字段,则可以将该文件确定为动画文件。以lottie文件为例,lottie动画文件是一个json格式的文件,且文件中包含layers和assests字段,如果加载到动画文件后,判断待展示文件的后缀名为.json,且文件中包括layers和assests两个字段,则可以判定该文件为lottie文件。当然,对于其他类型动画文件,也可以采用类似的方法去判定。在确定待播放文件为动画文件后,再去确定终端设备是否支持动画文件的播放,如果支持,则直接播放,如果不支持,则从动画文件中获取预先标记的指定帧图像,将其转换为图片文件后,再加载图片展示控件展示该图片文件。
[0048] 通过对动画文件进行降级处理,转换为图片文件,即可以让动画文件在不支持动画文件播放的终端设备上以图片文件的形式展示,从而不会影响动画文件内容的展示,保证了动画文件内容在不同性能的终端上稳定展示。此外,现有技术中,在播放动画文件时,都是按照预定的顺序一帧一帧的播放,还没有实现对具体播放细节的控制,比如,前面几帧是进场,中间几帧按一定的方式循环,最后从哪一帧退出等这些细节的控制,即没法控制动画按照一定的指令去播放以实现特定的动画效果,另外,目前一个动画文件一般只呈现一种动画效果,因而目前的动画可以展现的动画效果是非常有限的。对于某些场景,比如页面中广告展位展示的动画,则对动画效果有更高的要求。
[0049] 因而,在某些实施例中,可以预先针对动画文件以及想要达到的动画效果设计好动画播放的控制指令,该控制指令用于控制动画文件播放时的动画效果,比如可以控制动画文件中具体的每一帧图像的动作和路径,以及图像帧的播放顺序,以便让动画文件按照控制指令播放以达到特定的效果。举个例子,某个动画文件包括40帧图像,为了让动画文件在播放时可以呈现特定的效果,可以设计好控制指令,比如控制第1帧至第10帧图像为进场图像,然后中间的主动画(比如第11帧至30帧)循环播放3次,暂停2秒后播放退场图像(第30-40帧图像),通过对动画文件中每一帧图像的具体动作的控制以及每帧图像播放顺序的控制,可以控制整个动画文件的播放细节,达到更丰富的动画效果。在某些实施例中,所述控制指令包括针对动画文件中的具体的某些图像帧一些动作进行控制的指令,比如进场指令、转场指令、循环指令和退场指令等。
[0050] 在某些实施例中,可以直接将待播放动画文件和待播放动画文件的控制指令存储在服务端所在的服务器中,服务端在接收到客户端获取待播放动画文件的请求后,返回响应结果,其中响应结果可以直接就是待播放动画文件和待播放动画文件的控制指令,这样客户端就可以直接得到待播放动画文件和待播放动画文件的控制指令,并根据控制指令播放该动画文件。
[0051] 当然,动画文件相比于图片而言,所占的内存要大很多,如果所有的动画文件都存储到同一个服务器中,客户端都从同一个服务器获取动画文件,会导致服务器的处理压力较大,响应客户端的请求的响应时间较长,并且当网络较差时,还有可能造成网络拥塞。为了避免这种情况,在某些实施例中,可以在服务端仅存储动画文件的属性信息,其中属性信息中包含动画文件的存储地址以及控制指令,将动画文件分散存储于其他的服务器中。这样,服务端在接收到客户端的获取待播放动画文件的请求后,返回响应结果,其中,响应结果可以是动画文件的属性信息。客户端得到属性信息后,可以对属性信息进行解析,得到动画文件的存储地址和控制指令,再根据存储地址去获取动画文件。在某些实施例中,属性信息可以是json格式的数据,比如属性信息可以是json对象,里面包括不同的字段,分别用于存储动画文件存储地址以及控制指令。客户端获取到json对象后,解析各个字段,得到动画文件的存储地址和控制指令。
[0052] 在某些实施例中,动画文件的存储地址可以存储在CDN服务器中。CDN是构建在网络之上的内容分发网络,依靠部署在各地的CDN服务器,通过中心服务器的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。其中,服务端可以作为中心服务器,将动画文件部署到各CDN服务器,然后在属性信息,即json对象中新增扩展字段中,将动画文件的存储地址存储到新增的扩展字段中。当然,动画文件也可以手动存储到CDN服务器中,再将存储地址手动添加到属性信息中,本申请不作限制。这样,服务端作为中心服务器将动画文件部署到各CDN服务器中,并在属性信息中新增扩展字段,存储该存储地址。客户端从服务端获取到属性信息后,解析属性信息,得到动画文件的存储地址以及控制指令,再根据存储地址从CDN服务器就近获取动画文件,可以减轻服务端的处理压力,提高对客户端请求的响应速度。
[0053] 由于本说明书实施例的动画播放的控制指令是自行根据想要达到的动画效果设计的,为了在动画播放时可以识别控制指令并执行,本说明书实施中可以对播放器进行改进,以使其能够根据自行设计的控制指令播放动画文件。以lottie文件为例,目前,lottie文件的开源播放器是不支持自行设计的控制指令的,因而需要自行定义和封装lottie播放器,然后采用自定义的lottie播放器来播放动画文件,以识别控制指令,并根据控制指令控制动画文件的播放,到达预期的动画效果。
[0054] 通过这种方法,可以根据预期的动画效果设计好动画播放控制指令,以便根据控制指令控制动画的播放,达到各种动画效果,可以丰富并增强动画文件的展示效果,且针对同一个动画文件可以设计不同的控制指令,使其呈现多种动画效果。
[0055] 为了进一步解释本说明书实施例的动画播放方法,以下再以一个具体的实施例详细解释。
[0056] lottie是Airbnb开源的一个支持Android、iOS以及ReactNative并且利用json文件的方式快速实现动画效果的库。用户在AE软件绘制好动画后,即可以通过lottie将动画转换为json格式的动画文件,我们称之为lottie文件,当需要播放该动画时,可以直接加载该lottie文件,lottie会根据设备对应的操作系统对该lottie文件进行解析和渲染,然后便可以播放。由于不同的手机性能不一样,因而对于同样的动画场景,需要针对不同性能的手机制作不同的动画文件。为了简化操作,使得同一份动画文件可以在不同性能的手机上播放,本说明书实施例提供一种动画播放方法,以下结合图4解释该方法。
[0057] 首先,可以选取不同性能的手机进行一系列的测试,统计其性能参数,这些性能参数可以是手机机型、CPU、GPU、操作系统以及内存等信息,然后采用这些手机去分别播放删除了不同文件内容的动画文件,看是否能够流畅播放。通过测试,便可以知道某种性能的手机可以支持包含哪些文件内容的动画文件,得到一个手机性能参数与动画文件的文件内容的对应关系,当然,由于手机的性能参数比较多,为了方便统计,可以根据其性能参数将手机划分为高端机、中端机和低端机,然后确定每种类型的手机可以流畅播放的动画文件的文件内容(S401)。在通过AE软件绘制好动画并转换为json格式的lottie文件后,可以预先将lottie文件中的文件内容按照具体的功能效果进行分类,并且根据测试得到的手机性能参数与动画文件的文件内容的对应关系对文件内容进行标记,其中可以采用与性能参数对应的标识来标记(S402)。比如,lottie文件中的图层包含A、B、C、D四个图层,可以给A、B、C、D图层标记“高端机可播放”,给A、B、C图层标记“中端机可播放”,给A、B图层标记“低端机可播放”。
[0058] 当手机接收到动画播放指令时,可以向服务器端发送动画文件获取请求,服务器端将动画文件发送给手机,手机接收到动画文件后,会读取自身的性能参数(S403)。根据性能参数确定自身属于哪种类型的手机(S404),如果是高端机,则根据手机的操作系统直接将所述动画文件解析并渲染后播放(S405)。如果是中端机,则根据动画文件中的文件内容的标记确定待删减的文件内容,比如确定待删减的文件内容有D图层,然后将其删除后,再进行解析和渲染,然后播放。如果是低端机,则同样根据动画文件中的文件内容的标记确定待删减的文件内容,比如确定待删减的文件内容有C、D图层,然后将这两个图层删除后再播放(S406)。其中,待删减的文件可以是lottie文件中“layers”中的部分图层,或“assets”中的部分图层。
[0059] 通过这种方法,可以实现同一份动画文件在不同性能的手机上流畅播放,避免一个动画场景需要预先制作多份动画文件以适配不同性能的而手机。
[0060] 以上实施例中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
[0061] 如图5所示,是与本说明书动画播放方法相对应的动画播放装置,所述装置50可包括:
[0062] 获取模块51,用于获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数,其中,所述动画文件中的文件内容基于功能效果分类并标记;
[0063] 判断模块52,用于基于所述性能参数确定是否对所述动画文件的文件内容进行删减;
[0064] 删减模块53,用于如果是,则确定待删减的文件内容,并将所述待删减的文件内容删除后用于播放。在一个实施例中,如果基于所述性能参数确定无需对所述动画文件的文件内容进行删减,则所述动画文件直接用于播放。
[0065] 在一个实施例中,所述动画文件为json格式的文件。
[0066] 在一个实施例中,所述动画文件为lottie文件。
[0067] 在一个实施例中,所述待删减的文件内容包括layers中的部分图层和/或assests中的部分图层。
[0068] 在一个实施例中,将所述待删减的文件内容删除后用于播放包括:
[0069] 从所述动画文件中删除所述待删减的文件内容;
[0070] 根据所述终端设备的操作系统将删减后的动画文件解析并渲染,以使所述终端设备播放解析并渲染后的动画文件。
[0071] 在一个实施例中,所述性能参数包括终端设备的机型、终端设备CPU型号、终端设备的GPU型号、终端设备的操作系统和/或终端设备的内存参数。
[0072] 在一个实施例中,是否对所述动画文件的文件内容进行删减以及所述待删减的文件内容基于预先确定的终端设备的性能参数与动画文件的文件内容的对应关系确定。
[0073] 在一个实施例中,所述待删减的文件内容用所述性能参数对应的标识标记。
[0074] 在一个实施例中,所述装置位于播放所述动画文件的终端设备上,在获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数之前,所述装置还用于:
[0075] 检测动画文件播放指令。
[0076] 在一个实施例中,所述装置位于服务器上,获取待播放的动画文件以及播放所述动画文件的终端设备的性能参数之前,所述装置还用于:
[0077] 接收所述终端设备的动画文件获取请求,所述动画文件获取请求携带有所述终端设备的性能参数。
[0078] 在一个实施例中,在接收所述动画文件获取请求之后,所述装置还用于:
[0079] 将所述性能参数与所述终端设备的设备标识关联存储。
[0080] 上述装置中各个模块的功能和作用的实现过程具体详情见上述方法中对应步骤的实现过程,在此不再赘述。
[0081] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0082] 本说明书装置的实施例可以应用在计算机设备上,例如服务器或智能终端。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书动画播放装置所在终端设备的一种硬件结构图,除了图6所示的处理器602、内存604、网络接口606、以及非易失性存储器608之外,实施例中动画播放装置所在的终端设备,通常根据该终端设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0083] 如图7所示,为本说明书动画播放装置所在服务器中的一种硬件结构图,除了图7所示的处理器702、内存704、网络接口706、以及非易失性存储器708之外,实施例中动画播放装置所在的服务器,通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
[0084] 本申请可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0085] 本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0086] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
[0087] 以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。