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