一种基于虚拟物品的动画播放方法、装置和移动终端与流程

文档序号:15171222发布日期:2018-08-14 17:58阅读:156来源:国知局

本发明涉及网络直播的技术领域,特别是涉及一种基于虚拟物品的动画播放方法、装置和移动终端。



背景技术:

随之网络科技的发展,尤其是移动互联网的广泛普及,网络直播也越来越普遍地应用在用户的工作、生活、娱乐等各个方面,受到用户的追捧。

例如,观众可以通过网络直播观看主播表演乐器、舞蹈,也可以通过网络直播观看主播进行电子竞技,等等。

在网络直播的过程中,为了增加鼓励主播产出更加优质的直播内容,提高观众观看直播的趣味性,主播与观众之间的互动方式也变得多样性。

在一种方式中,观众在观看主播主持的网络直播时,可以与主播进行各种各样的互动,用户可以给自己喜欢的主播赠送虚拟礼物。

直播平台一般都会有根据虚拟礼物的价值大小来显示不同的动画,价值小的虚拟礼物一般以弹幕的形式显示,而价值大的虚拟礼物则一般是以动画的形式显示。

这些动画已设计好并打包,播放帧数、播放时长等属性都是固定的,观众联系赠送某个虚拟礼物,这个虚拟礼物的动画需要连续重复播放多次,尤其是当动画的播放时间较长时,那么整个过程就变得十分漫长,资源消耗较大。

例如,某个虚拟礼物的动画播放时长为3s,如果观众在短时间内连续送出10个该虚拟礼物,需要连续10次显示该虚拟礼物的动画,完整显示完后总耗时会达到30s。



技术实现要素:

本发明公开了一种基于虚拟物品的动画播放方法、装置和移动终端,以解决多个动画播放时长较长、资源消耗较大的问题。

第一个方面,本发明提供了一种基于虚拟物品的动画播放方法,包括:

在网络直播中检测第一用户发送给第二用户的虚拟物品;

加载所述虚拟物品对应的动画文件和配置文件;

按照所述配置文件配置播放组件;

识别所述第一用户发送所述虚拟物品的连击操作;

根据所述连击操作生成所述动画文件的播放方式;

在所述播放组件中按照所述播放方式播放所述动画文件。

优选地,所述在网络直播中检测第一用户发送给第二用户的虚拟物品,包括:

接收直播服务器发送的、在网络直播中第一用户发送给第二用户的虚拟物品;

在预设的物品队列中存储所述虚拟物品;

遍历所述物品队列,合并连击标识相同的所述虚拟物品;

查询所述虚拟物品的权重;

按照所述权重在所述物品队列中对所述虚拟物品进行排序。

优选地,所述播放组件包括动画播放器与文本播放器,所述动画文件包括动画包、动画文本;所述按照所述配置文件配置播放组件,包括:

从所述配置文件中读取内容模式与文本位置;

按照所述内容模式配置所述动画播放器播放所述动画包的布局方式;

按照所述文本位置配置所述文本播放器播放所述动画文本的布局方式。

优选地,所述识别所述第一用户发送所述虚拟物品的连击操作,包括:

查询已显示的连击次数;

若查到所述已显示的连击次数,则在所述已显示的连击次数的基础上加上连击步长,作为当前的连击次数;

若未查到所述已显示的连击次数且第一次播放所述虚拟物品的动画文件,则将起始的连击次数的值赋予当前的连击次数;

若未查到所述已显示的连击次数且并非第一次播放所述虚拟物品的动画文件,则将总的连击次数减去本次的连击次数并加上连击步长,作为当前的连击次数;

每间隔预设的时间段,在上一当前的连击次数的基础上加上连击步长,作为下一当前的连击次数;

当已显示的连击次数等于总的连击次数时,将所述虚拟物品从预设的任务队列中移除。

优选地,所述根据所述连击操作生成所述动画文件的播放方式,包括:

基于当前的连击次数确定所述动画文件的播放时长;

根据所述播放时长计算播放所述动画文件的帧步长。

优选地,所述基于当前的连击次数确定所述动画文件的播放时长,包括:

若当前的连击次数为一且总的连击次数为一,则维持所述动画文件的播放时长为预设的第一时长;

若当前的连击次数大于一且并非最后一次连击操作,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第二时长;

若当前的连击次数为最后一次且存在其他虚拟物品,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第三时长;

若当前的连击次数为最后一次且不存在其他虚拟物品,则维持所述动画文件的播放时长为预设的第一时长。

优选地,所述根据所述播放时长计算播放所述动画文件的帧步长,包括:

查询动画播放速度、所述动画包中图像帧的总帧数;

计算所述播放与所述总帧数的乘积;

计算所述播放时长与所述乘积之间的比值,作为播放所述动画文件的帧步长。

优选地,所述在所述播放组件中按照所述播放方式播放所述动画文件,包括:

调用预置的动画播放引擎,按照动画播放器配置的布局方式间隔所述帧步长播放动画包中的图像帧;

按照文本播放器配置的布局方式播放动画文本。

优选地,所述加载所述虚拟物品对应的动画文件和配置文件,包括:

从预设的物品队列中提取虚拟物品;

在预置的数据库中查找所述虚拟物品对应的动画文件和配置文件;

将所述虚拟物品对应的动画文件和配置文件加载至内存中。

优选地,所述从预设的物品队列中提取虚拟物品,包括:

判断预设的物品队列中是否存储有虚拟物品;

当存储有虚拟物品时,判断排序最高的虚拟物品的权重是否大于当前虚拟物品的权重;若是,则停止播放当前虚拟物品对应的动画文件并将当前的连击次数写入缓存中,提取排序最高的虚拟物品;若否,则继续播放当前虚拟物品对应的动画文件;

当未存储虚拟物品时,确定完成动画播放。

第二个方面,本发明提供了一种基于虚拟物品的动画播放装置,包括:

虚拟物品检测模块,用于在网络直播中检测第一用户发送给第二用户的虚拟物品;

播放文件加载模块,用于加载所述虚拟物品对应的动画文件和配置文件;

播放组件配置模块,用于按照所述配置文件配置播放组件;

连击操作识别模块,用于识别所述第一用户发送所述虚拟物品的连击操作;

播放方式生成模块,用于根据所述连击操作生成所述动画文件的播放方式;

动画播放模块,用于在所述播放组件中按照所述播放方式播放所述动画文件。

优选地,所述虚拟物品检测模块包括:

虚拟物品接收子模块,用于接收直播服务器发送的、在网络直播中第一用户发送给第二用户的虚拟物品;

虚拟物品存储子模块,用于在预设的物品队列中存储所述虚拟物品;

虚拟物品合并子模块,用于遍历所述物品队列,合并连击标识相同的所述虚拟物品;

权重查询子模块,用于查询所述虚拟物品的权重;

虚拟物品排序子模块,用于按照所述权重在所述物品队列中对所述虚拟物品进行排序。

优选地,所述播放组件包括动画播放器与文本播放器,所述动画文件包括动画包、动画文本;所述播放组件配置模块包括:

参数读取子模块,用于从所述配置文件中读取内容模式与文本位置;

第一布局模式配置子模块,用于按照所述内容模式配置所述动画播放器播放所述动画包的布局方式;

第二布局模式配置子模块,用于按照所述文本位置配置所述文本播放器播放所述动画文本的布局方式。

优选地,所述连击操作识别模块包括:

连击次数查询子模块,用于查询已显示的连击次数;

第一连击次数计算子模块,用于若查到所述已显示的连击次数,则在所述已显示的连击次数的基础上加上连击步长,作为当前的连击次数;

第二连击次数计算子模块,用于若未查到所述已显示的连击次数且第一次播放所述虚拟物品的动画文件,则将起始的连击次数的值赋予当前的连击次数;

第三连击次数计算子模块,用于若未查到所述已显示的连击次数且并非第一次播放所述虚拟物品的动画文件,则将总的连击次数减去本次的连击次数并加上连击步长,作为当前的连击次数;

间隔计算子模块,用于每间隔预设的时间段,在上一当前的连击次数的基础上加上连击步长,作为下一当前的连击次数;

虚拟物品移除子模块,用于当已显示的连击次数等于总的连击次数时,将所述虚拟物品从预设的任务队列中移除。

优选地,所述播放方式生成模块包括:

播放时长确定子模块,用于基于当前的连击次数确定所述动画文件的播放时长;

帧步长计算子模块,用于根据所述播放时长计算播放所述动画文件的帧步长。

优选地,所述播放时长确定子模块包括:

第一维持单元,用于若当前的连击次数为一且总的连击次数为一,则维持所述动画文件的播放时长为预设的第一时长;

第一缩减单元,用于若当前的连击次数大于一且并非最后一次连击操作,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第二时长;

第二缩减单元,用于若当前的连击次数为最后一次且存在其他虚拟物品,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第三时长;

第二维持单元,用于若当前的连击次数为最后一次且不存在其他虚拟物品,则维持所述动画文件的播放时长为预设的第一时长。

优选地,所述帧步长计算子模块包括:

参数查询单元,用于查询动画播放速度、所述动画包中图像帧的总帧数;

乘积计算单元,用于计算所述播放与所述总帧数的乘积;

比值计算单元,用于计算所述播放时长与所述乘积之间的比值,作为播放所述动画文件的帧步长。

优选地,所述动画播放模块包括:

动画包播放子模块,用于调用预置的动画播放引擎,按照动画播放器配置的布局方式间隔所述帧步长播放动画包中的图像帧;

动画文本播放子模块,用于按照文本播放器配置的布局方式播放动画文本。

优选地,所述播放文件加载模块包括:

虚拟物品提取子模块,用于从预设的物品队列中提取虚拟物品;

数据库查找子模块,用于在预置的数据库中查找所述虚拟物品对应的动画文件和配置文件;

内存加载子模块,用于将所述虚拟物品对应的动画文件和配置文件加载至内存中。

优选地,所述虚拟物品提取子模块包括:

物品队列判断单元,用于判断预设的物品队列中是否存储有虚拟物品;

权重判断单元,用于当存储有虚拟物品时,判断排序最高的虚拟物品的权重是否大于当前虚拟物品的权重;若是,则调用播放调整单元,若否,则调用播放继续单元;

播放调整单元,用于停止播放当前虚拟物品对应的动画文件并将当前的连击次数写入缓存中,提取排序最高的虚拟物品;

播放继续单元,用于继续播放当前虚拟物品对应的动画文件;

播放完成确定单元,用于当未存储虚拟物品时,确定完成动画播放。

第三方面,本发明提供了一种移动终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的基于虚拟物品的动画播放方法的步骤。

第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现所述的基于虚拟物品的动画播放方法的步骤。

相对于现有技术,本发明实施例包括以下优点:

在本发明实施例中,在网络直播中检测第一用户发送给第二用户的虚拟物品,加载虚拟物品对应的动画文件和配置文件,按照配置文件配置播放组件,识别第一用户发送所述虚拟物品的连击操作,并依此生成动画文件的播放方式,在播放组件中按照所述播放方式播放动画文件,根据连击的场景动态地调整播放方式,可以适应性地压缩播放时长,提高用户体验,并且,由于降低了播放时长,可以降低资源消耗。

附图说明

图1是本发明的一种基于虚拟物品的动画播放方法的步骤流程图;

图2是本发明的一种基于虚拟物品的动画播放装置的结构框图;

图3为实现本发明各个实施例的一种移动终端的硬件结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种基于虚拟物品的动画播放方法的步骤流程图,具体可以包括如下步骤:

步骤101,在网络直播中检测第一用户发送给第二用户的虚拟物品。

在移动终端中,如手机、平板电脑等,可以安装支持流媒体的应用,例如,即时通讯工具、直播客户端、新闻客户端、游戏客户端,等等,以与直播服务器交互视频流。

一方面,用户可以通过该应用中采集音频流和/或视频流,并上传至直播服务器、启动直播间,此时,该用户可以称之为主播,另一方面,其他用户可以通过该应用登录直播服务器,进入该直播间,从直播服务器接收该音频流和/或视频流并进行播放,实现网络直播(即语音直播、音视频直播等),此时,该用户可以称之为观众。

在网络直播的过程中,第一用户(如观众)可以将所用户的虚拟物品发送给第二用户(如主播),该发送行为可以称之为赠送,该虚拟物品可以称之为礼物,例如,鲜花、爱心、火箭等等。

如果在较短的时间周期内,同一个第一用户发送多次相同的虚拟物品,此操作可以称之为连击。

在本发明的一个优选实施例中,步骤101可以包括如下子步骤:

子步骤s11,接收直播服务器发送的、在网络直播中第一用户发送给第二用户的虚拟物品。

子步骤s12,在预设的物品队列中存储所述虚拟物品。

子步骤s13,遍历所述物品队列,合并连击标识相同的所述虚拟物品。

子步骤s14,查询所述虚拟物品的权重。

子步骤s15,按照所述权重在所述物品队列中对所述虚拟物品进行排序。

在本发明实施例中,第一用户通知直播服务器,发送虚拟物品至第二用户,如果移动终端接收到直播服务器发送的虚拟物品时,在内存中创建一个物品队列存储这些虚拟物品,根据虚拟物品的权重进行降序排序,优先显示权重较大的物品价值。

由于网络问题,一个虚拟物品完整的连击可能会分几次接收,例如,用户连击10次,首先接收到第1-5次的连击,而第6-10次的连击可能会延后接收到,为了使连击更加连贯,可以对同一个完整的连击进行合并操作。

因此,每个虚拟物品的连击都会生成一个唯一的连击标识(如id),根据连击标识来区分是否为同一个连击,将相同连击标识的虚拟物品进行合并。

步骤102,加载所述虚拟物品对应的动画文件和配置文件。

对于已接收的虚拟物品,则可以加载其动画文件、配置文件,待进行动画播放。

其中,动画文件用于记载待播放的动画的内容,配置文件用于记载配置播放该动画文件的信息。

在本发明的一个优选实施例中,步骤102可以包括如下子步骤:

子步骤s21,从预设的物品队列中提取虚拟物品。

虚拟物品存储在内存的物品队列中,该物品队列实现了获取虚拟物品的方法和移除虚拟物品的方法。

在具体实现中,判断预设的物品队列中是否存储有虚拟物品。

当存储有虚拟物品时,判断排序最高的虚拟物品的权重是否大于当前虚拟物品(即正在播放动画文件的虚拟物品)的权重。

若是,则停止播放当前虚拟物品对应的动画文件并将当前的连击次数写入缓存中,提取排序最高的虚拟物品,优先展示权重更高的虚拟物品。

若否,则继续播放当前虚拟物品对应的动画文件。

当未存储虚拟物品时,确定完成动画播放。

子步骤s22,在预置的数据库中查找所述虚拟物品对应的动画文件和配置文件。

动画文件和配置文件会预先从直播服务器中下载,并存储在数据库中。

当接收到虚拟物品时,可以根据虚拟物品的id在该数据库中查找对应的动画文件和配置文件。

子步骤s23,将所述虚拟物品对应的动画文件和配置文件加载至内存中。

对动画文件和配置文件进行解析,封装一个如layput类等存储器,用于存储配置文件的属性,并把解析好的动画文件和配置文件放入到内存中,当下次还有相同的虚拟物品需要播放动画时,直接从内存中查找相应的动画文件和配置文件,减少读取数据库的操作,提升效率。

步骤103,按照所述配置文件配置播放组件。

对于解析号的配置文件,可以按照其中记录的信息配置播放组件,后续调用播放组件按照该配置文件播放动画文件。

在本发明的一个优选实施例中,步骤103可以包括如下子步骤:

子步骤s31,从所述配置文件中读取内容模式与文本位置。

子步骤s32,按照所述内容模式配置所述动画播放器播放所述动画包的布局方式。

子步骤s33,按照所述文本位置配置所述文本播放器播放所述动画文本的布局方式。

在本发明实施例中,播放组件包括动画播放器与文本播放器,动画文件包括动画包、动画文本,一方面,可以按照内容模式配置动画播放器播放动画包的布局方式,另一方面,可以按照文本位置配置文本播放器播放动画文本的布局方式。

以android(安卓)系统的移动终端为例,配置文件可以是一段描述了播放组件的布局信息的json字符串文本。

播放组件主要包含两个部分,一个用于播放动画包的动画播放器,如animationview;另一个用于播放动画文本的文本播放器,如textview。

其中,动画文本可以包括以下几部分:

赠送人昵称,接收人昵称,礼物名称,连击次数。

配置文件目前主要有两个布局属性,一个是用于布局动画播放器(如animationview)的内容模式(如contentmode属性),另一个是用于布局文本播放器(如textview)的文本位置(如textposition属性)。

内容模式(如contentmode属性)指定动画播放器(如animationview)的宽高和在屏幕中的位置,有四种布局方式(枚举):

0:适配宽度,高度按比例计算,在屏幕居中显示

1:适配宽度,高度按比例计算,在屏幕顶部显示

2:适配宽度,高度按比例计算,在屏幕底部显示

3:适配高度,宽度按比例计算,在屏幕居中显示

文本位置(如textposition属性)指定文本播放器(如textview)的位置,有六种布局方式(枚举):

0:在动画播放器(如animationview)底部显示

1:在动画播放器(如animationview)顶部显示

2:在屏幕顶部显示

3:在屏幕居中显示

4:在屏幕底部显示

5:不显示

把解析好的动画文件和配置文件传递给相应的播放组件,布局动画播放器(如animationview)和文本播放器(如textview)根据存储器(如layout类)中的属性进行布局,同时,布局动画播放器(如animationview)中的动画引擎根据动画文件把播放器准备好。

步骤104,识别所述第一用户发送所述虚拟物品的连击操作。

在具体实现中,可以识别第一用户发送虚拟物品的连击操作,以便动态地调整动画文件的播放方式。

在本发明的一个优选实施例中,步骤104可以包括如下子步骤:

子步骤s41,查询已显示的连击次数。

子步骤s42,若查到所述已显示的连击次数,则在所述已显示的连击次数的基础上加上连击步长,作为当前的连击次数。

子步骤s43,若未查到所述已显示的连击次数且第一次播放所述虚拟物品的动画文件,则将起始的连击次数的值赋予当前的连击次数。

子步骤s44,若未查到所述已显示的连击次数且并非第一次播放所述虚拟物品的动画文件,则将总的连击次数减去本次的连击次数并加上连击步长,作为当前的连击次数。

子步骤s45,每间隔预设的时间段,在上一当前的连击次数的基础上加上连击步长,作为下一当前的连击次数。

子步骤s46,当已显示的连击次数等于总的连击次数时,将所述虚拟物品从预设的任务队列中移除。

在本发明实施例中,可以使用以下几个属性描述虚拟物品的连击操作:

base:起始的连击次数

step:连击步长

count:本次的连击次数

sum:总的连击次数

此外,使用currentcount属性来记录当前的连击次数。

计算起始的连击次数,根据连击标识(如id)从缓存里获取,缓存是指已显示过的次数(showedcoun),这个值在一个完整的连击操作显示完后才会缓存,根据缓存分三种情况计算:

如果显示缓存有值,currentcount=showedcount+step

如果没有缓存并且是第一次显示的,currentcount=base

如果没有缓存并且不是第一次显示,currentcount=sum-count+step

启动定时器,每间隔一定的时间段(如1s)计算一次连击数,计算公式如下:

currentcount=currentcount+step

计算完后通知播放组件,如布局动画播放器(如animationview)和文本播放器(如textview),播放动画文件和更新连击次数。

当currentcount=sum时,代表这次连击操作完成播放动画,可以把currentcount存入缓存中,把当前虚拟物品从任务队列中移除,等待动画播放完毕后,继续从任务队列中取出下一个虚拟物品,如权重最高的虚拟,重复以上步骤,直到把任务队列中的虚拟物品播放完动画为止。

步骤105,根据所述连击操作生成所述动画文件的播放方式。

在具体实现中,可以根据不同场景调整播放组件播放动画文件的播放方式,使动画播放速度和连击数同步更新。

在本发明的一个优选实施例中,步骤105可以包括如下子步骤:

子步骤s51,基于当前的连击次数确定所述动画文件的播放时长。

若当前的连击次数为一且总的连击次数为一,则维持动画文件的播放时长为预设的第一时长(如3s),即按原时间播放。

若当前的连击次数大于一且并非最后一次连击操作,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第二时长(如1s),即加速播放。

若当前的连击次数为最后一次且存在其他虚拟物品,则将动画文件的播放时长从预设的第一时长缩减至指定的第三时长(如1s),即加速播放。

若当前的连击次数为最后一次且不存在其他虚拟物品,则维持动画文件的播放时长为预设的第一时长(如3s),即按原时间播放。

子步骤s52,根据所述播放时长计算播放所述动画文件的帧步长。

在本发明实施例中,可以对动画引擎进行优化,通过在动画文件中跳跃帧步长到下一帧播放(即跳帧播放)的方式,使得动画的播放时长可动态调整。

在本发明实施例的一个优选示例中,子步骤s52进一步可以包括如下子步骤:

子步骤s521,查询动画播放速度、所述动画包中图像帧的总帧数。

子步骤s522,计算所述播放与所述总帧数的乘积。

子步骤s523,计算所述播放时长与所述乘积之间的比值,作为播放所述动画文件的帧步长。

动画引擎一般的工作原理,根据设计好动画的详细参数进行播放,动画的播放速度(单位时间内播放的帧数)和总帧数(动画图片的总数量)都是在设计动画时已经固定了,如果把一个动画看作成一个图片的集合,播放动画的过程就是轮播每张图片的过程:

d=f/v

其中,d为播放时长,f为总帧数,v为播放速度。

动画引擎会根据已有的播放速度和总帧数,单位时间内播放特定的帧数,把每一帧都播放。

例如,一个动画总共有30帧,播放速度为30帧/s,则动画引擎在每秒内播放30帧,播放时长为4s,最终完整把一个动画播放出来。

如果要在1s把动画播完的话,由于移动终端的屏幕刷新频率是固定的,一般是60hz,这时候就无法在1s是内把所有帧都播放,在不改变原来动画包的fps(framespersecond,每秒传输帧数)的基础上,通过合理跳帧实现播放时长的调整,使用如下公式计算可得出帧步长:

step=f/(v*d)

其中,step为帧步长,d为播放时长,f为总帧数,v为播放速度。

根据帧步长,就可以定位到下一个播放的帧数,进而可以实现跳帧,这样既可以满足时长的可控性,也保证了动画的完整性,实现了播放时长的动态调整。

步骤106,在所述播放组件中按照所述播放方式播放所述动画文件。

若确定了当前连击操作下动画文件的播放方式,则可以在播放组件中按照该播放方式播放动画文件。

在具体实现中,动画文件中包括动画包与动画文本,动画包中包括多个图像帧;

可以调用预置的动画播放引擎,按照动画播放器(如animationview)配置的布局方式间隔帧步长播放动画包的图像帧。

按照文本播放器(如textview)配置的布局方式播放动画文本。

当物品队列中的虚拟物品全部播放完动画文件,则可以停止定时器,停止播放组件,隐藏相关的view。

在本发明实施例中,在网络直播中检测第一用户发送给第二用户的虚拟物品,加载虚拟物品对应的动画文件和配置文件,按照配置文件配置播放组件,识别第一用户发送所述虚拟物品的连击操作,并依此生成动画文件的播放方式,在播放组件中按照所述播放方式播放动画文件,根据连击的场景动态地调整播放方式,可以适应性地压缩播放时长,提高用户体验,并且,由于降低了播放时长,可以降低资源消耗。

参照图2,示出了本发明的一种基于虚拟物品的动画播放装置的结构框图,具体可以包括如下模块:

虚拟物品检测模块201,用于在网络直播中检测第一用户发送给第二用户的虚拟物品;

播放文件加载模块202,用于加载所述虚拟物品对应的动画文件和配置文件;

播放组件配置模块203,用于按照所述配置文件配置播放组件;

连击操作识别模块204,用于识别所述第一用户发送所述虚拟物品的连击操作;

播放方式生成模块205,用于根据所述连击操作生成所述动画文件的播放方式;

动画播放模块206,用于在所述播放组件中按照所述播放方式播放所述动画文件。

在本发明的一个优选实施例中,所述虚拟物品检测模块201包括:

虚拟物品接收子模块,用于接收直播服务器发送的、在网络直播中第一用户发送给第二用户的虚拟物品;

虚拟物品存储子模块,用于在预设的物品队列中存储所述虚拟物品;

虚拟物品合并子模块,用于遍历所述物品队列,合并连击标识相同的所述虚拟物品;

权重查询子模块,用于查询所述虚拟物品的权重;

虚拟物品排序子模块,用于按照所述权重在所述物品队列中对所述虚拟物品进行排序。

在本发明的一个优选实施例中,所述播放组件包括动画播放器与文本播放器,所述动画文件包括动画包、动画文本;所述播放组件配置模块203包括:

参数读取子模块,用于从所述配置文件中读取内容模式与文本位置;

第一布局模式配置子模块,用于按照所述内容模式配置所述动画播放器播放所述动画包的布局方式;

第二布局模式配置子模块,用于按照所述文本位置配置所述文本播放器播放所述动画文本的布局方式。

在本发明的一个优选实施例中,所述连击操作识别模块204包括:

连击次数查询子模块,用于查询已显示的连击次数;

第一连击次数计算子模块,用于若查到所述已显示的连击次数,则在所述已显示的连击次数的基础上加上连击步长,作为当前的连击次数;

第二连击次数计算子模块,用于若未查到所述已显示的连击次数且第一次播放所述虚拟物品的动画文件,则将起始的连击次数的值赋予当前的连击次数;

第三连击次数计算子模块,用于若未查到所述已显示的连击次数且并非第一次播放所述虚拟物品的动画文件,则将总的连击次数减去本次的连击次数并加上连击步长,作为当前的连击次数;

间隔计算子模块,用于每间隔预设的时间段,在上一当前的连击次数的基础上加上连击步长,作为下一当前的连击次数;

虚拟物品移除子模块,用于当已显示的连击次数等于总的连击次数时,将所述虚拟物品从预设的任务队列中移除。

在本发明的一个优选实施例中,所述播放方式生成模块205包括:

播放时长确定子模块,用于基于当前的连击次数确定所述动画文件的播放时长;

帧步长计算子模块,用于根据所述播放时长计算播放所述动画文件的帧步长。

在本发明的一个优选实施例中,所述播放时长确定子模块包括:

第一维持单元,用于若当前的连击次数为一且总的连击次数为一,则维持所述动画文件的播放时长为预设的第一时长;

第一缩减单元,用于若当前的连击次数大于一且并非最后一次连击操作,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第二时长;

第二缩减单元,用于若当前的连击次数为最后一次且存在其他虚拟物品,则将所述动画文件的播放时长从预设的第一时长缩减至指定的第三时长;

第二维持单元,用于若当前的连击次数为最后一次且不存在其他虚拟物品,则维持所述动画文件的播放时长为预设的第一时长。

在本发明的一个优选实施例中,所述帧步长计算子模块包括:

参数查询单元,用于查询动画播放速度、所述动画包中图像帧的总帧数;

乘积计算单元,用于计算所述播放与所述总帧数的乘积;

比值计算单元,用于计算所述播放时长与所述乘积之间的比值,作为播放所述动画文件的帧步长。

在本发明的一个优选实施例中,所述动画播放模块206包括:

动画包播放子模块,用于调用预置的动画播放引擎,按照动画播放器配置的布局方式间隔所述帧步长播放动画包中的图像帧;

动画文本播放子模块,用于按照文本播放器配置的布局方式播放动画文本。

在本发明的一个优选实施例中,所述播放文件加载模块202包括:

虚拟物品提取子模块,用于从预设的物品队列中提取虚拟物品;

数据库查找子模块,用于在预置的数据库中查找所述虚拟物品对应的动画文件和配置文件;

内存加载子模块,用于将所述虚拟物品对应的动画文件和配置文件加载至内存中。

在本发明的一个优选实施例中,所述虚拟物品提取子模块包括:

物品队列判断单元,用于判断预设的物品队列中是否存储有虚拟物品;

权重判断单元,用于当存储有虚拟物品时,判断排序最高的虚拟物品的权重是否大于当前虚拟物品的权重;若是,则调用播放调整单元,若否,则调用播放继续单元;

播放调整单元,用于停止播放当前虚拟物品对应的动画文件并将当前的连击次数写入缓存中,提取排序最高的虚拟物品;

播放继续单元,用于继续播放当前虚拟物品对应的动画文件;

播放完成确定单元,用于当未存储虚拟物品时,确定完成动画播放。

本发明实施例提供的装置能够实现图1的方法实施例中的各个过程,为避免重复,这里不再赘述。

在本发明实施例中,在网络直播中检测第一用户发送给第二用户的虚拟物品,加载虚拟物品对应的动画文件和配置文件,按照配置文件配置播放组件,识别第一用户发送所述虚拟物品的连击操作,并依此生成动画文件的播放方式,在播放组件中按照所述播放方式播放动画文件,根据连击的场景动态地调整播放方式,可以适应性地压缩播放时长,提高用户体验,并且,由于降低了播放时长,可以降低资源消耗。

图3为实现本发明各个实施例的一种移动终端的硬件结构示意图。

该移动终端300包括但不限于:射频单元301、网络模块302、音频输出单元303、输入单元304、传感器305、显示单元306、用户输入单元307、接口单元308、存储器309、处理器310、以及电源311等部件。本领域技术人员可以理解,图3中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

其中,处理器310,用于在网络直播中检测第一用户发送给第二用户的虚拟物品;加载所述虚拟物品对应的动画文件和配置文件;按照所述配置文件配置播放组件;识别所述第一用户发送所述虚拟物品的连击操作;根据所述连击操作生成所述动画文件的播放方式;在所述播放组件中按照所述播放方式播放所述动画文件。

在本发明实施例中,在网络直播中检测第一用户发送给第二用户的虚拟物品,加载虚拟物品对应的动画文件和配置文件,按照配置文件配置播放组件,识别第一用户发送所述虚拟物品的连击操作,并依此生成动画文件的播放方式,在播放组件中按照所述播放方式播放动画文件,根据连击的场景动态地调整播放方式,可以适应性地压缩播放时长,提高用户体验,并且,由于降低了播放时长,可以降低资源消耗。

应理解的是,本发明实施例中,射频单元301可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器310处理;另外,将上行的数据发送给基站。通常,射频单元301包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元301还可以通过无线通信系统与网络和其他设备通信。

移动终端通过网络模块302为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元303可以将射频单元301或网络模块302接收的或者在存储器309中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元303还可以提供与移动终端300执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元303包括扬声器、蜂鸣器以及受话器等。

输入单元304用于接收音频或视频信号。输入单元304可以包括图形处理器(graphicsprocessingunit,gpu)3041和麦克风3042,图形处理器3041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元306上。经图形处理器3041处理后的图像帧可以存储在存储器309(或其它存储介质)中或者经由射频单元301或网络模块302进行发送。麦克风3042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元301发送到移动通信基站的格式输出。

移动终端300还包括至少一种传感器305,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板3061的亮度,接近传感器可在移动终端300移动到耳边时,关闭显示面板3061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器305还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元306用于显示由用户输入的信息或提供给用户的信息。显示单元306可包括显示面板3061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板3061。

用户输入单元307可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元307包括触控面板3071以及其他输入设备3072。触控面板3071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板3071上或在触控面板3071附近的操作)。触控面板3071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器310,接收处理器310发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板3071。除了触控面板3071,用户输入单元307还可以包括其他输入设备3072。具体地,其他输入设备3072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板3071可覆盖在显示面板3061上,当触控面板3071检测到在其上或附近的触摸操作后,传送给处理器310以确定触摸事件的类型,随后处理器310根据触摸事件的类型在显示面板3061上提供相应的视觉输出。虽然在图3中,触控面板3071与显示面板3061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板3071与显示面板3061集成而实现移动终端的输入和输出功能,具体此处不做限定。

接口单元308为外部装置与移动终端300连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元308可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端300内的一个或多个元件或者可以用于在移动终端300和外部装置之间传输数据。

存储器309可用于存储软件程序以及各种数据。存储器309可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器309可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器310是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器309内的软件程序和/或模块,以及调用存储在存储器309内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器310可包括一个或多个处理单元;优选的,处理器310可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器310中。

移动终端300还可以包括给各个部件供电的电源311(比如电池),优选的,电源311可以通过电源管理系统与处理器310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,移动终端300包括一些未示出的功能模块,在此不再赘述。

优选的,本发明实施例还提供一种移动终端,包括处理器310,存储器309,存储在存储器309上并可在所述处理器310上运行的计算机程序,该计算机程序被处理器310执行时实现上述基于虚拟物品的动画播放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于虚拟物品的动画播放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

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

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

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