一种动画数据播放方法以及装置的制造方法

xiaoxiao2021-2-23  114

一种动画数据播放方法以及装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种动画数据播放方法以及装置。
【背景技术】
[0002]近年来,集合在线K歌、在线视频直播、在线游戏直播、在线教育直播等功能为一体的综合型的富媒体客户端空前发展,使得观众用户可以自在地通过观众客户端来观看主播客户端直播的内容;其中,观众用户在观看主播客户端直播的内容的同时,还可以通过观众客户端向主播客户端发送虚拟礼物(即赠送礼物)。但是在业务高峰期时会由于用户赠送礼物的密度太大,而导致客户端在短时间内需要同时播放大量的与所赠送的礼物相关联的动画特效,而且通常的动画特效都是基于Flash(固态存储器与动画编辑器)技术实现的,而基于Flash技术的动画特效对CPU(Central Processing Unit,中央处理器)的占用率普遍较高,所以当同时播放大量的动画特效时,可能会使客户端进程在当前所运行的CPU核上的占用率变得过高,从而导致CPU的运行压力过大,继而影响了用户设备的正常运作。

【发明内容】

[0003]本发明实施例提供一种动画数据播放方法以及装置,可以在客户端播放动画特效时降低CPU的运行压力,以保证用户设备可以正常运作。
[0004]本发明实施例提供了一种动画数据播放方法,包括:
[0005]当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0006]若满足所述占用率播放条件,则播放所述目标动画数据;
[0007]若不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据;
[0008]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。
[0009 ]相应地,本发明实施例还提供了一种动画数据播放装置,包括:
[0010]获取检测模块,用于当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0011 ]条件播放模块,用于若所述获取检测模块检测出满足所述占用率播放条件,则播放所述目标动画数据;
[0012]定时检测播放模块,用于若所述获取检测模块检测出不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据;
[0013]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。
[0014]本发明实施例通过获取目标动画数据对应的第一处理器占用率,可以根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件,若满足占用率条件,说明当前对目标动画数据进行播放的行为并不会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以开始播放目标动画数据;若不满足占用率条件,说明当前对目标动画数据进行播放的行为将会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据,由此可见,在不满足占用率条件时,并不会立即播放目标动画数据,而是通过定时循环检测的方式在后续检测出目标动画数据满足占用率条件时再播放目标动画数据,从而使得整个动画数据的播放过程可以始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内,从而可以在客户端播放动画数据时降低CPU的运行压力,以保证用户设备可以正常运作。
【附图说明】
[0015]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本发明实施例提供的一种动画数据播放方法的流程示意图;
[0017]图2是本发明实施例提供的另一种动画数据播放方法的流程示意图;
[0018]图3是本发明实施例提供的一种动画数据播放装置的结构示意图;
[0019]图4是本发明实施例提供的一种获取检测模块的结构示意图;
[0020]图5是本发明实施例提供的一种添加检测单元的结构示意图;
[0021 ]图6是本发明实施例提供的一种定时检测播放模块的结构示意图;
[0022]图7是本发明实施例提供的一种数据获取检测单元的结构示意图;
[0023]图8是本发明实施例提供的另一种动画数据播放装置的结构示意图。
【具体实施方式】
[0024]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]请参见图1,是本发明实施例提供的一种动画数据播放方法的流程示意图,所述方法可以包括:
[0026]S101,当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率;
[0027]具体的,当观众客户端向某频道直播间内的主播客户端发送目标虚拟礼物时,该频道直播间内的客户端(所述客户端可以包括该频道直播间内的所有观众客户端和主播客户端)可以获取服务器发送的与所述目标虚拟礼物对应的目标动画数据;其中,不同的虚拟礼物分别对应不同动画类型的动画数据,每种动画类型的动画数据都有固定的播放模式和播放位置。所述服务器在通过TCP/IP(Transmiss1n Control Protocol/InternetProtocol,传输控制协议/因特网互联协议)协议将所述目标动画数据发送至所述客户端的同时,还可以将所述目标动画数据对应的第一处理器占用率也发送至所述客户端,使得当所述客户端获取到服务器发送的目标动画数据时,还可以一并获取所述目标动画数据对应的第一处理器占用率。其中,所述第一处理器占用率是指在播放所述目标动画数据时对处理器的占用率,所述第一处理器占用率是在开发过程中对所述目标动画数据进行多次播放测试之后所取的平均值。例如,若当前处理器的总体使用率为30%,所述第一处理器占用率为5%,那么当播放所述目标动画数据时,处理器的总体使用率可以变为35%。
[0028]S102,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0029]具体的,所述客户端获取到所述第一处理器占用率后,可以检测当前是否有在获取时间戳之前获取到的与所述目标动画数据的动画类型相同且还未播放的动画数据,所述获取时间戳是指从所述服务器中获取到所述目标动画数据时的时间戳,若检测出不存在,则可以根据所述第一处理器占用率进一步检测所述目标动画数据是否满足预设的占用率播放条件,否则,需要等到所述在获取时间戳之前获取到的与所述目标动画数据的动画类型相同且还未播放的动画数据都被依次播放后,再根据所述第一处理器占用率进一步检测所述目标动画数据是否满足预设的占用率播放条件,以保证相同的动画类型的动画数据可以依次按序播放。
[0030]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和;其中,同时播放的多个动画数据的动画类型互不相同。所述总占用率阈值可以根据业务需求进行动态调整,当所述总占用率阈值调高后,可以增加同时播放的动画数据的数量;当所述总占用率阈值调低后,可以减少同时播放的动画数据的数量。[0031 ] S103,播放所述目标动画数据;
[0032]具体的,当S102步骤检测所述目标动画数据满足预设的占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和小于所述总占用率阈值,即说明CPU的总体使用率仍处于较低的数值范围内,此时,可以播放所述目标动画数据。
[0033]S104,通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据;
[0034]具体的,当S102步骤检测所述目标动画数据不满足所述占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和等于或大于所述总占用率阈值,即说明将会导致CPU的总体使用率偏高,此时,暂时不对所述目标动画数据进行播放,并通过定时循环检测的方式定期检测所述目标动画数据是否满足所述占用率播放条件,如每隔3秒检测一次所述目标动画数据是否满足所述占用率播放条件,由于在经过一段时间后,同时播放的多个动画数据的数量可能会减少,此时,通过所述定时循环检测的方式可以检测到所述目标动画数据满足所述占用率播放条件,从而可以在此时播放所述目标动画数据,同时并通过所述定时循环检测的方式对另一种动画类型中的未能立即播放的动画数据进行定期检测,以实现对所有未能立即播放的动画数据可以循环定期检测。例如,有两个动画类型相同的动画数据,分别为A和B,当A被播放完,即可对检测B是否满足所述占用率播放条件,若满足,则立即播放B;若不满足,则通过定时循环检测的方式检测到B满足所述占用率播放条件时,再播放B,以保证在播放B时始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内。
[0035]本发明实施例通过获取目标 动画数据对应的第一处理器占用率,可以根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件,若满足占用率条件,说明当前对目标动画数据进行播放的行为并不会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以开始播放目标动画数据;若不满足占用率条件,说明当前对目标动画数据进行播放的行为将会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据,由此可见,在不满足占用率条件时,并不会立即播放目标动画数据,而是通过定时循环检测的方式在后续检测出目标动画数据满足占用率条件时再播放目标动画数据,从而使得整个动画数据的播放过程可以始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内,从而可以在客户端播放动画数据时降低CPU的运行压力,以保证用户设备可以正常运作。
[0036]请参见图2,是本发明实施例提供的另一种动画数据播放方法的流程示意图,所述方法可以包括:
[0037]S201,当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并查找与所述目标动画数据的动画类型相同的目标队列;
[0038]具体的,当观众客户端向某频道直播间内的主播客户端发送目标虚拟礼物时,该频道直播间内的客户端(所述客户端可以包括该频道直播间内的所有观众客户端和主播客户端)可以获取服务器发送的与所述目标虚拟礼物对应的目标动画数据;其中,不同的虚拟礼物分别对应不同动画类型的动画数据,每种动画类型的动画数据都有固定的播放模式和播放位置。所述服务器在通过TCP/IP协议将所述目标动画数据发送至所述客户端的同时,还可以将所述目标动画数据对应的第一处理器占用率也发送至所述客户端,使得当所述客户端获取到服务器发送的目标动画数据时,还可以一并获取所述目标动画数据对应的第一处理器占用率。其中,所述第一处理器占用率是指在播放所述目标动画数据时对处理器的占用率,所述第一处理器占用率是在开发过程中对所述目标动画数据进行多次播放测试之后所取的平均值。例如,若当前处理器的总体使用率为30%,所述第一处理器占用率为5%,那么当播放所述目标动画数据时,处理器的总体使用率可以变为35%。
[0039]所述客户端在获取到所述第一处理器占用率的同时,还可以查找与所述目标动画数据的动画类型相同的目标队列;其中,所述目标队列用于存放与所述目标动画数据的动画类型相同且未播放的动画数据,且所述目标队列中的动画数据是按照在所述目标队列中的排序位置依次进行播放的,且所述目标队列中的动画数据在被播放时将从所述目标队列中移除。其中,所述目标队列可以是预设的至少一个队列中的其中一个队列,每个预设的队列分别用于存放不同动画类型的动画数据。每个预设的队列还可以分别对应不同的队列编号,例如,用于存放动画类型为A的动画数据的队列所对应的队列编号可以设置为1,用于存放动画类型为B的动画数据的队列所对应的队列编号可以设置为2,用于存放动画类型为C的动画数据的队列所对应的队列编号可以设置为3。
[0040]S202,将所述目标动画数据添加至所述目标队列;
[0041 ]具体的,所述客户端查找到所述目标队列后,可以检测所述目标队列是否为空,当检测到所述目标队列为空时,所述客户端可以将所述目标动画数据添加至所述目标队列的首位位置,并直接执行S203的步骤;
[0042]当检测到所述目标队列不为空时,所述客户端可以将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置,并当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,此时可以执行S203步骤。例如,若所述目标队列中从首位位置到末尾位置的动画数据分别为A(位于首位位置)、B(位于第二位置)、C(位于第三位置)、D(位于末尾位置),则当A被播放时,A将从所述目标队列中移除,此时所述目标队列中的动画数据包括B(位于首位位置)、C(位于第二位置)、D(位于末尾位置),且在A被播放完毕时可以检测位于首位位置的B是否可以播放;若B也开始被播放,则B也将从所述目标队列中移除,此时所述目标队列中的动画数据包括C(位于首位位置)、D(位于末尾位置),且在B被播放完毕时可以检测位于首位位置的C是否可以播放。
[0043]S203,当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0044]具体的,当所述客户端检测到所述目标动画数据在所述目标队列中的初始位置为首位位置(所述目标队列为空的情况),或检测到所述目标动画数据被逐步移动至所述目标队列的首位位置(所述目标队列不为空的情况)时,可以根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件。
[0045]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和;其中,同时播放的多个动画数据的动画类型互不相同。所述总占用率阈值可以根据业务需求进行动态调整,当所述总占用率阈值调高后,可以增加同时播放的动画数据的数量;当所述总占用率阈值调低后,可以减少同时播放的动画数据的数量。
[0046]S204,播放所述目标动画数据;
[0047]具体的,当S203步骤检测所述目标动画数据满足预设的占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和小于所述总占用率阈值,即说明CPU的总体使用率仍处于较低的数值范围内,此时,可以播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,使得所述目标队列中位于所述目标动画数据的下一个动画数据可以移动至首位位置,以便于开始检测位于所述目标动画数据的下一个动画数据是否满足所述占用率播放条件。
[0048]S205,当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;
[0049]具体的,当203步骤检测所述目标动画数据不满足所述占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和等于或大于所述总占用率阈值,即说明将会导致CPU的总体使用率偏高,此时,暂时不对所述目标动画数据进行播放,并开始等待接收用于定时检测超时消息。当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;每个队列编号所对应的队列分别用于存放不同动画类型的动画数据;每个队列以及每个队列分别对应的队列编号都是预先设置的。其中,所述超时消息可以由Qt(跨平台C++图形用户界面应用程序)的QTimer启动定时器来触发。例如,QTimer启动定时器每隔3秒触发一次超时消息,使得所述客户端可以每隔3秒接收一次超时消息。
[0050]S206,当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;
[0051]具体的,当所述目标队列编号对应的队列为所述目标队列时,可以进一步判断当前是否正在播放属于所述目标队列的动画数据;若判断为否,则可以获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;若判断为是,则暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件,从而可以保证位于所述目标动画数据的上一个位置的动画数据在被播放完毕的情况下,再通过定时循环检测的方式检测所述目标动画数据是否满足所述占用率播放条件,以避免动画类型相同的多个动画数据被同时播放。
[0052]S207,当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算;
[0053]具体的,当S206检测出所述目标动画数据满足所述占用率播放条件时,即说明通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件,此时,所述客户端可以播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,使得所述目标队列中位于所述目标动画数据的下一个动画数据可以移动至首位位置,以便于开始检测位于所述目标动画数据的下一个动画数据是否满足所述占用率播放条件。
[0054]所述客户端在将所述目标动画数据从所述目标队列中移除的同时,还可以对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件。
[0055]进一步的,当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测,即可以使所述队列变量值可以从最小编号递增至最大编号,再循环到最小编号。
[0056]S208,当检测出所述目标动画数据不满足所述占用率播放条件时,暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算;
[0057]具体的,当S206检测出所述目标动画数据不满足所述占用率播放条件时,所述客户端可以暂停 播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,即所述队列变量值保持不变,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件。
[0058]例如,若有3个队列分别为a、b、c,且队列a的队列编号为1,队列b的队列编号为2,队列c的队列编号为3,则当接收到超时消息时,获取到的所述队列变量值为1,且检测到当前没有在播放与队列a的动画类型相同的动画数据,此时,可以通过定时循环检测的方式检测队列a中位于首位位置的动画数据是否满足所述占用率播放条件,若检测出队列a中位于首位位置的动画数据满足所述占用率播放条件,则可以播放队列a中位于首位位置的动画数据,并将队列a中位于首位位置的动画数据从队列a中移除,并对所述队列变量值加1,使得所述队列变量值变为2;当接收到下一个超时消息时,获取到的所述队列变量值为2,且检测到当前在播放与队列b的动画类型相同的动画数据,此时,将不检测队列b中位于首位位置的动画数据是否满足所述占用率播放条件,即不会播放队列b中位于首位位置的动画数据,并再对所述队列变量值加1,使得所述队列变量值变为3;当再次接收到下一个超时消息时,获取到的所述队列变量值为3,且检测到当前没有在播放与队列c的动画类型相同的动画数据,此时,可以通过定时循环检测的方式检测队列c中位于首位位置的动画数据是否满足所述占用率播放条件,若检测出队列c中位于首位位置的动画数据不满足所述占用率播放条件,则暂时不播放队列c中位于首位位置的动画数据,并保持所述队列变量值不变,即所述队列变量值依然为3;当再次接收到下一个超时消息时,获取到的所述队列变量值依然为3,且检测到当前没有在播放与队列c的动画类型相同的动画数据,此时,可以再次通过定时循环检测的方式检测队列c中位于首位位置的动画数据是否满足所述占用率播放条件,若检测出队列c中位于首位位置的动画数据满足所述占用率播放条件,则再播放队列c中位于首位位置的动画数据,并将队列c中位于首位位置的动画数据从队列c中移除,并再对所述队列变量值加1,使得所述队列变量值变为4,此时,所述队列变量值大于最大的队列编号,所以需要将所述队列变量值重新设置为1。
[0059]本发明实施例所提供的客户端可以在检测到某动画数据播放完毕时,立即检测该动画数据所属队列中位于首位位置的动画数据是否可以被播放,同时,所述客户端还可以通过定时循环检测的方式轮流检测所有队列中位于首位位置的动画数据是否可以被播放,通过这两种检测方式可以保证每个队列中的多个动画数据可以被依次播放,且保证同时播放的多个动画数据对CHJ的总占用率小于预设的总占用率阈值。
[0060]本发明实施例通过获取目标动画数据对应的第一处理器占用率,可以根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件,若满足占用率条件,说明当前对目标动画数据进行播放的行为并不会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以开始播放目标动画数据;若不满足占用率条件,说明当前对目标动画数据进行播放的行为将会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据,由此可见,在不满足占用率条件时,并不会立即播放目标动画数据,而是通过定时循环检测的方式在后续检测出目标动画数据满足占用率条件时再播放目标动画数据,从而使得整个动画数据的播放过程可以始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内,从而可以在客户端播放动画数据时降低CPU的运行压力,以保证用户设备可以正常运作。
[0061]请参见图3,是本发明实施例提供的一种动画数据播放装置的结构示意图,所述动画数据播放装置1可以应用于客户端中,所述动画数据播放装置1可以包括:获取检测模块1 ο、条件播放模块20、定时检测播放模块30;
[0062]所述获取检测模块10,用于当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0063]具体的,当观众客户端向某频道直播间内的主播客户端发送目标虚拟礼物时,该频道直播间内的客户端(所述客户端可以包括该频道直播间内的所有观众客户端和主播客户端)可以获取服务器发送的与所述目标虚拟礼物对应的目标动画数据;其中,不同的虚拟礼物分别对应不同动画类型的动画数据,每种动画类型的动画数据都有固定的播放模式和播放位置。所述服务器在通过TCP/IP协议将所述目标动画数据发送至所述客户端的同时,还可以将所述目标动画数据对应的第一处理器占用率也发送至所述客户端,使得当所述客户端获取到服务器发送的目标动画数据时,还可以通过所述获取检测模块10获取所述目标动画数据对应的第一处理器占用率。其中,所述第一处理器占用率是指在播放所述目标动画数据时对处理器的占用率,所述第一处理器占用率是在开发过程中对所述目标动画数据进行多次播放测试之后所取的平均值。例如,若当前处理器的总体使用率为30%,所述第一处理器占用率为5%,那么当播放所述目标动画数据时,处理器的总体使用率可以变为35%。
[0064]所述获取检测模块10获取到所述第一处理器占用率后,还可以检测当前是否有在获取时间戳之前获取到的与所述目标动画数据的动画类型相同且还未播放的动画数据,所述获取时间戳是指从所述服务器中获取到所述目标动画数据时的时间戳,若检测出不存在,则所述获取检测模块10可以根据所述第一处理器占用率进一步检测所述目标动画数据是否满足预设的占用率播放条件,否则,需要等到所述在获取时间戳之前获取到的与所述目标动画数据的动画类型相同且还未播放的动画数据都被依次播放后,再根据所述第一处理器占用率进一步检测所述目标动画数据是否满足预设的占用率播放条件,以保证相同的动画类型的动画数据可以依次按序播放。
[0065]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和;其中,同时播放的多个动画数据的动画类型互不相同。所述总占用率阈值可以根据业务需求进行动态调整,当所述总占用率阈值调高后,可以增加同时播放的动画数据的数量;当所述总占用率阈值调低后,可以减少同时播放的动画数据的数量。
[0066]所述条件播放模块20,用于若所述获取检测模块10检测出满足所述占用率播放条件,则播放所述目标动画数据;
[0067]具体的,当所述获取检测模块10检测出所述目标动画数据满足预设的占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和小于所述总占用率阈值,即说明CPU的总体使用率仍处于较低的数值范围内,此时,所述条件播放模块20可以播放所述目标动画数据。
[0068]所述定时检测播放模块30,用于若所述获取检测模块10检测出不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据;
[0069]具体的,当所述获取检测模块10检测出所述目标动画数据不满足所述占用率播放条件时,说明所述第一处理器占用率与第二处理器占用率之和等于或大于所述总占用率阈值,即说明将会导致CPU的总体使用率偏高,此时,所述定时检测播放模块30暂时不对所述目标动画数据进行播放,所述定时检测播放模块30通过定时循环检测的方式定期检测所述目标动画数据是否满足所述占用率播放条件,如每隔3秒检测一次所述目标动画数据是否满足所述占用率播放条件,由于在经过一段时间后,同时播放的多个动画数据的数量可能会减少,此时,所述定时检测播放模块30通过所述定时循环检测的方式可以检测到所述目标动画数据满足所述占用率播放条件,从而可以在此时播放所述目标动画数据,同时并通过所述定时循环检测的方式对另一种动画类型中的未能立即播放的动画数据进行定期检测,以实现对所有未能立即播放的动画数据可以循环定期检测。例如,有两个动画类型相同的动画数据,分别为A和B,当A被播放完,即可对检测B是否满足所述占用率播放条件,若满足,则立即播放B;若不满足,则所述定时检测播放模块30通过定时循环检测的方式检测到B满足所述占用率播放条件时,再播放B,以保证在播放B时始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内。
[0070]进一步的,再请参见图4,是上述图3对应实施例中的获取检测模块10的结构示意图,所述获取检测模块10可以包括:获取查找单元101、添加检测单元102;
[0071 ]所述获取查找单元101,用于当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并查找与所述目标动画数据的动画类型相同的目标队列;
[0072]具体的,当获取到服务器发送的目标动画数据时,所述获取查找单元101可以获取所述目标动画数据对应的第一处理器占用率。其中,所述第一处理器占用率是指在播放所述目标动画数据时对处理器的占用率,所述第一处理器占用率是在开发过程中对所述目标动画数据进行多次播放测试之后所取的平均值。例如,若当前处理器的总体使用率为30%,所述第一处理器占用率为5%,那么当播放所述目标动画数据时,处理器的总体使用率可以变为35%。
[0073]所述获取查找单元101在获取到所述第一处理器占用率的同时,还可以查找与所述目标动画数据的动画类型相同的目标队列;其中,所述目标队列用于存放与所述目标动画数据的动画类型相同且未播放的动画数据,且所述目标队列中的动画数据是按照在所述目标队列中的排序位置依次进行播放的,且所述目标队列中的动画数据在被播放时将从所述目标队列中移除。其中,所述目标队列可以是预设的至少一个队列中的其中一个队列,每个预设的队列分别用于存放不同动画类型的动画数据。每个预设的队列还可以分别对应不同的队列编号,例如,用于存放动画类型为A的动画数据的队列 所对应的队列编号可以设置为1,用于存放动画类型为B的动画数据的队列所对应的队列编号可以设置为2,用于存放动画类型为C的动画数据的队列所对应的队列编号可以设置为3。
[0074]所述添加检测单元102,用于将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0075]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和;其中,同时播放的多个动画数据的动画类型互不相同。所述总占用率阈值可以根据业务需求进行动态调整,当所述总占用率阈值调高后,可以增加同时播放的动画数据的数量;当所述总占用率阈值调低后,可以减少同时播放的动画数据的数量。
[0076]进一步的,再请参见5,是上述图4对应实施例中的添加检测单元102的结构示意图,所述添加检测单元102可以包括:队列检测子单元1021、第一添加检测子单元1022、第二添加检测子单元1023;
[0077]所述队列检测子单元1021,用于检测所述目标队列是否为空;
[0078]所述第一添加检测子单元1022,用于当所述目标队列为空时,将所述目标动画数据添加至所述目标队列的首位位置,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件;
[0079]所述第二添加检测子单元1023,用于当所述目标队列不为空时,将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置;
[0080]所述第二添加检测子单元1023,还用于当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件;
[0081 ]具体的,当所述队列检测子单元1021检测到所述目标队列不为空时,所述第二添加检测子单元1023可以将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置,并当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,此时可以根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件。例如,若所述目标队列中从首位位置到末尾位置的动画数据分别为A(位于首位位置)、B(位于第二位置)、C(位于第三位置)、D(位于末尾位置),则当A被播放时,所述第二添加检测子单元1023将A从所述目标队列中移除,此时所述目标队列中的动画数据包括B(位于首位位置)、C(位于第二位置)、D(位于末尾位置),且在A被播放完毕时所述第二添加检测子单元1023可以检测位于首位位置的B是否可以播放;若B也开始被播放,则所述第二添加检测子单元1023也将B从所述目标队列中移除,此时所述目标队列中的动画数据包括C(位于首位位置)、D(位于末尾位置),且在B被播放完毕时可以检测位于首位位置的C是否可以播放。
[0082]进一步的,再请参见图6,是上述图3对应实施例中的定时检测播放模块30的结构示意图,所述定时检测播放模块30可以包括:编号获取确定单元301、数据获取检测单元302、播放递增单元303、暂停播放单元304、变量值设置单元305;
[0083]所述编号获取确定单元301,用于当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;不同的队列编号所对应的队列分别用于存放不同动画类型的动画数据;
[0084]具体的,当接收到用于循环定时检测的超时消息时,所述编号获取确定单元301获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;每个队列编号所对应的队列分别用于存放不同动画类型的动画数据;每个队列以及每个队列分别对应的队列编号都是预先设置的。其中,所述超时消息可以由Qt(跨平台C++图形用户界面应用程序)的QTimer启动定时器来触发。例如,QTimer启动定时器每隔3秒触发一次超时消息,使得所述客户端可以每隔3秒接收一次超时消息。
[0085]所述数据获取检测单元302,用于当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;
[0086]所述播放递增单元303,用于当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件;
[0087]具体的,当所述数据获取检测单元302检测出所述目标动画数据满足所述占用率播放条件时,即说明通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件,此时,所述播放递增单元303可以播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,使得所述目标队列中位于所述目标动画数据的下一个动画数据可以移动至首位位置,以便于开始检测位于所述目标动画数据的下一个动画数据是否满足所述占用率播放条件。
[0088]所述播放递增单元303在将所述目标动画数据从所述目标队列中移除的同时,还可以对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件。
[0089]所述暂停播放单元304,用于当检测出所述目标动画数据不满足所述占用率播放条件时,暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件;
[0090]具体的,当所述数据获取检测单元302检测出所述目标动画数据不满足所述占用率播放条件时,所述暂停播放单元304可以暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,即所述队列变量值保持不变,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件。
[0091]所述变量值设置单元305,用于当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测;
[0092]具体的,在对所述队列变量值进行递增后,可以判断递增后的队列变量值是否大于所述至少一个队列编号中的最大编号,当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,所述变量值设置单元305可以将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测,即可以使所述队列变量值可以从最小编号递增至最大编号,再循环到最小编号。
[0093]进一步的,再请参见图7,是上述图6对应实施例中的数据获取检测单元302的结构示意图,所述数据获取检测单元302可以包括:数据判断子单元3021、数据获取检测子单元3022、计算子单元3023;
[0094]所述数据判断子单元3021,用于当所述目标队列编号对应的队列为所述目标队列时,判断当前是否正在播放属于所述目标队列的动画数据;
[0095]所述数据获取检测子单元3022,用于若所述数据判断子单元3021判断为否,则获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;
[0096]所述计算子单元3023,用于若所述数据判断子单元3021判断为是,则暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件;
[0097]具体的,若所述数据判断子单元3021判断为是,则所述计算子单元3023可以暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件,从而可以保证位于所述目标动画数据的上一个位置的动画数据在被播放完毕的情况下,再通过定时循环检测的方式检测所述目标动画数据是否满足所述占用率播放条件,以避免动画类型相同的多个动画数据被同时播放。
[0098]本发明实施例所提供的客户端可以在检测到某动画数据播放完毕时,立即检测该动画数据所属队列中位于首位位置的动画数据是否可以被播放,同时,所述客户端还可以通过定时循环检测的方式轮流检测所有队列中位于首位位置的动画数据是否可以被播放,通过这两种检测方式可以保证每个队列中的多个动画数据可以被依次播放,且保证同时播放的多个动画数据 对CHJ的总占用率小于预设的总占用率阈值。
[0099]本发明实施例通过获取目标动画数据对应的第一处理器占用率,可以根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件,若满足占用率条件,说明当前对目标动画数据进行播放的行为并不会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以开始播放目标动画数据;若不满足占用率条件,说明当前对目标动画数据进行播放的行为将会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据,由此可见,在不满足占用率条件时,并不会立即播放目标动画数据,而是通过定时循环检测的方式在后续检测出目标动画数据满足占用率条件时再播放目标动画数据,从而使得整个动画数据的播放过程可以始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内,从而可以在客户端播放动画数据时降低CPU的运行压力,以保证用户设备可以正常运作。
[0100]请参见图8,是本发明实施例提供的另一种动画数据播放装置的结构示意图。所述动画数据播放装置1000可以包括处理器1001、通信接口 1002和存储器1003(所述动画数据播放装置1000中的处理器1001的数量可以为一个或多个,图8中以一个处理器为例)。本发明的一些实施例中,处理器1001、通信接口 1002和存储器1003可通过通信总线或其他方式连接,其中,图8以通过通信总线连接为例。
[0101]其中,所述通信接口1002,用于与服务器进行通信;
[0102]所述存储器1003用于存储程序;
[0103]所述处理器1001用于执行所述程序,以实现
[0104]当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0105]若满足所述占用率播放条件,则播放所述目标动画数据;
[0106]若不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据;
[0107]其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。
[0108]在一个实施例中,所述处理器1001在执行当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件时,具体用于:
[0109]当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并查找与所述目标动画数据的动画类型相同的目标队列;
[0110]将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件;
[0111]其中,所述目标队列用于存放与所述目标动画数据的动画类型相同且未播放的动画数据,且所述目标队列中的动画数据是按照在所述目标队列中的排序位置依次进行播放的,且所述目标队列中的动画数据在被播放时将从所述目标队列中移除。
[0112]在一个实施例中,所述处理器1001在执行将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件时,具体用于:
[0113]检测所述目标队列是否为空;
[0114]当所述目标队列为空时,将所述目标动画数据添加至所述目标队列的首位位置,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件;
[0115]当所述目标队列不为空时,将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置;
[0116]当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件。
[0117]在一个实施例中,所述处理器1001在执行通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据时,具体用于:
[0118]当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;每个队列编号所对应的队列分别用于存放不同动画类型的动画数据;
[0119]当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;
[0120]当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件;
[0121 ]当检测出所述目标动画数据不满足所述占用率播放条件时,暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件。
[0122]在一个实施例中,所述处理器1001在执行当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算之后,还用于:
[0123]当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测。
[0124]在一个实施例中,所述处理器1001在执行当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件时,具体用于:
[0125]当所述目标队列编号对应的队列为所述目标队列时,判断当前是否正在播放属于所述目标队列的动画数据;
[0126]若判断为否,则获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件;
[0127]若判断为是,则暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件。
[0128]本发明实施例通过获取目标动画数据对应的第一处理器占用率,可以根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件,若满足占用率条件,说明当前对目标动画数据进行播放的行为并不会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以开始播放目标动画数据;若不满足占用率条件,说明当前对目标动画数据进行播放的行为将会使客户端进程在当前所运行的CPU核上的占用率变得过高,因此可以通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据,由此可见,在不满足占用率条件时,并不会立即播放目标动画数据,而是通过定时循环检测的方式在后续检测出目标动画数据满足占用率条件时再播放目标动画数据,从而使得整个动画数据的播放过程可以始终将客户端进程在当前所运行的CPU核上的占用率控制在较低的数值范围内,从而可以在客户端播放动画数据时降低CPU的运行压力,以保证用户设备可以正常运作。
[0129]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
[0130]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种动画数据播放方法,其特征在于,包括: 当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件; 若满足所述占用率播放条件,则播放所述目标动画数据; 若不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据; 其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。2.如权利要求1所述的方法,其特征在于,所述当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件,包括: 当获取到服务器发送的目标动画数据时,获取 所述目标动画数据对应的第一处理器占用率,并查找与所述目标动画数据的动画类型相同的目标队列; 将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件; 其中,所述目标队列用于存放与所述目标动画数据的动画类型相同且未播放的动画数据,且所述目标队列中的动画数据是按照在所述目标队列中的排序位置依次进行播放的,且所述目标队列中的动画数据在被播放时将从所述目标队列中移除。3.如权利要求2所述的方法,其特征在于,所述将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件,包括: 检测所述目标队列是否为空; 当所述目标队列为空时,将所述目标动画数据添加至所述目标队列的首位位置,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件; 当所述目标队列不为空时,将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置; 当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件。4.如权利要求2或3所述的方法,其特征在于,所述通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,包括: 当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;每个队列编号所对应的队列分别用于存放不同动画类型的动画数据; 当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件; 当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件; 当检测出所述目标动画数据不满足所述占用率播放条件时,暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件。5.如权利要求4所述的方法,其特征在于,在所述当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算的步骤之后,还包括: 当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测。6.如权利要求4所述的方法,其特征在于,所述当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件,包括: 当所述目标队列编号对应的队列为所述目标队列时,判断当前是否正在播放属于所述目标队列的动画数据; 若判断为否,则获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件; 若判断为是,则暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件。7.一种动画数据播放装置,其特征在于,包括: 获取检测模块,用于当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件; 条件播放模块,用于若所述获取检测模块检测出满足所述占用率播放条件,则播放所述目标动画数据; 定时检测播放模块,用于若所述获取检测模块检测出不满足所述占用率播放条件,则通过定时循环检测的方式检测到所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据; 其中,所述占用率播放条件为所述第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;所述第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。8.如权利要求7所述的装置,其特征在于,所述获取检测模块包括: 获取查找单元,用于当获取到服务器发送的目标动画数据时,获取所述目标动画数据对应的第一处理器占用率,并查找与所述目标动画数据的动画类型相同的目标队列; 添加检测单元,用于将所述目标动画数据添加至所述目标队列,并当所述目标动画数据位于所述目标队列的首位位置时,根据所述第一处理器占用率检测所述目标动画数据是否满足预设的占用率播放条件; 其中,所述目标队列用于存放与所述目标动画数据的动画类型相同且未播放的动画数据,且所述目标队列中的动画数据是按照在所述目标队列中的排序位置依次进行播放的,且所述目标队列中的动画数据在被播放时将从所述目标队列中移除。9.如权利要求8所述的装置,其特征在于,所述添加检测单元包括: 队列检测子单元,用于检测所述目标队列是否为空; 第一添加检测子单元,用于当所述目标队列为空时,将所述目标动画数据添加至所述目标队列的首位位置,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件; 第二添加检测子单元,用于当所述目标队列不为空时,将所述目标动画数据添加至所述目标队列的末尾位置,并当播放所述目标队列中位于所述目标动画数据的前一个位置的相邻动画数据,且将所述相邻动画数据从所述目标队列中移除时,将所述目标动画数据所处的位置确定为所述目标队列的首位位置; 所述第二添加检测子单元,还用于当所述目标队列中位于所述目标动画数据的前一个位置的动画数据播放结束时,接收播放结束消息,并根据所述播放结束消息查找所述目标队列中的首位位置,以获取位于所述首位位置的所述目标动画数据,并根据所述第一处理器占用率检测位于所述首位位置的所述目标动画数据是否满足所述占用率播放条件。10.如权利要求8或9所述的装置,其特征在于,所述定时检测播放模块包括: 编号获取确定单元,用于当接收到用于循环定时检测的超时消息时,获取队列变量值,并在预设的至少一个队列编号中获取与所述队列变量值相同的队列编号,以确定为目标队列编号;不同的队列编号所对应的队列分别用于存放不同动画类型的动画数据; 数据获取检测单元,用于当所述目标队列编号对应的队列为所述目标队列时,获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件; 播放递增单元,用于当检测出所述目标动画数据满足所述占用率播放条件时,播放所述目标动画数据,并将所述目标动画数据从所述目标队列中移除,并对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件; 暂停播放单元,用于当检测出所述目标动画数据不满足所述占用率播放条件时,暂停播放所述目标动画数据,并暂停对所述队列变量值进行递增计算,以便于在接收到下一个超时消息时继续根据所述队列变量值检测所述目标动画数据是否满足所述占用率播放条件。11.如权利要求10所述的装置,其特征在于,所述定时检测播放模块还包括: 变量值设置单元,用于当判断出递增后的队列变量值大于所述至少一个队列编号中的最大编号时,将所述递增后的队列变量值重新设置为所述至少一个队列编号中的最小编号,以便于根据所述队列变量值对所述至少一个队列编号分别对应的队列进行循环检测。12.如权利要求10所述的装置,其特征在于,所述数据获取检测单元包括: 数据判断子单元,用于当所述目标队列编号对应的队列为所述目标队列时,判断当前是否正在播放属于所述目标队列的动画数据; 数据获取检测子单元,用于若所述数据判断子单元判断为否,则获取位于所述目标队列的首位位置的所述目标动画数据,并检测所述目标动画数据是否满足所述占用率播放条件; 计算子单元,用于若所述数据判断子单元判断为是,则暂停检测所述目标动画数据是否满足所述占用率播放条件,并对所述队列变量值进行递增计算,以等待在接收到下一个超时消息时根据递增后的队列变量值,检测位于与所述目标队列相邻的队列中的首位位置的动画数据是否满足所述占用率播放条件。
【专利摘要】本发明实施例公开了一种动画数据播放方法以及装置,其中方法包括:当获取到服务器发送的目标动画数据时,获取目标动画数据对应的第一处理器占用率,并根据第一处理器占用率检测目标动画数据是否满足预设的占用率播放条件;若满足,则播放目标动画数据;若不满足,则通过定时循环检测的方式检测到目标动画数据满足占用率播放条件时,播放目标动画数据;其中,占用率播放条件为第一处理器占用率与第二处理器占用率之和小于预设的总占用率阈值;第二处理器占用率是指正在同时播放的多个动画数据分别对应的处理器占用率的总和。采用本发明,可以在客户端播放动画特效时降低CPU的运行压力,以保证用户设备可以正常运作。
【IPC分类】H04N21/442
【公开号】CN105491448
【申请号】CN201510896822
【发明人】方阳
【申请人】广州华多网络科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月7日

最新回复(0)