动画表情图片播放方法及系统的制作方法

文档序号:6773116阅读:152来源:国知局
专利名称:动画表情图片播放方法及系统的制作方法
技术领域
本发明涉及计算机网络通信中媒体播放技术领域,特别涉及一种动画表情图片 播放方法及系统。
背景技术
计算机网络技术是通信技术与计算机技术相结合的产物。近年来,计算机网络 通信在人们的日常生活中有着越来越重要的地位,用户可以在计算机网络上进行文字、 声音和视频的交流,共享文件、图片和视频信息等,从而方便用户的生活、工作和学 习。在使用计算机网络进行沟通交流的过程中,表情图片比文字更直观、更快捷、更形 象,比音频视频占用更少的资源,更能适应复杂的网络环境。而动画表情图片相对于静 态表情图片,更生动,更能有效传达会话者的思想意图,使会话鲜活灵动起来,大大提 升进行会话的用户的体验,可见,在计算机网络通信中使用动画表情图片是非常基本也 是非常重要的功能。目前播放动画表情图片有两种主要实现方案,第一种是使用IE内核实现动画 表情图片播放,虽然实现简单,但其占用系统资源太大,效率不高,所以使用者不多; 第二种效率更高的方法,那就是开发者开发支持表情图片显示刷新的对象链接与嵌入 (OLE, Object Linkingand Embedding)控件,然后再结合动画表情播放策略实现动画表 情播放。不同的动画表情播放策略虽然最终都能实现动画表情播放,但在效率和最终效 果上差别会很大,最常用的动画表情播放策略把待播放的动画表情数据全部传给OLE控 件,然后在OLE控件内部启动一个线程来播放,这种播放策略的缺点是每一个OLE 控件在生命周期内会一直保留一份动画表情的全部数据,且每一个需要播放动画表情的 OLE控件内部都要启动一个播放线程,导致的结果是当会话的用户双方在会话窗口中使 用大量表情时,内存空间的占用会非常大,CPU的占用率会非常高,系统响应变慢,动 画表情越多越明显。

发明内容
(一 )要解决的技术问题本发明要解决的技术问题是如何实现在播放大量动画表情时既降低内存占用 和降低CPU占用率,又保证动画播放流畅。( 二 )技术方案—种动画表情图片播放方法,包括以下步骤Sl 将要播放的动画表情图片按单帧进行分解;S2当动画表情图片的播放周期到来时依次播放所述单帧。其中,所述步骤S2具体包括S21 为所述动画表情图片创建一个播放对象;S22将当前要播放的单帧传递给所述播放对象,并将所述播放对象插入到播放区域;S23当动画表情图片的播放周期到来时,播放存在于播放对象中的单帧;S24当前帧播放完成后,将下一个单帧传递给播放对象,然后执行步骤S23。其中,所述步骤S24中的下一个单帧若为所述动画表情图片的最后一帧,则将 第一帧传递给所述播放对象。其中,所述步骤S23中当动画表情图片的播放周期到来时,遍历播放区域中的 每个对象,判断是否为播放对象,若不是,则遍历下一个对象,若是则判断该播放对象 是否处于播放区域的可视区域中,若处于可视区,则播放存在于播放对象中的单帧,否 贝U,停止播放。其中,所述播放对象为OLE控件,播放区域为利用RichEdit创建的会话窗口消
息区域。其中,所述步骤Sl之前还包括获取所述动画表情图片的步骤接收含有动画表情标识的多媒体会话消息;从所述多媒体会话消息中解析出动画表情标识;根据所述动画表情标识获取动画表情图片。一种动画表情图片播放系统,包括动画表情图片分解模块,用于将要播放的动画表情图片按单帧进行分解;动画表情图片播放模块,用于当动画表情图片的播放周期到来时依次播放所述单帧。其中,所述动画表情图片播放模块包括播放对象创建模块,用于为所述动画表情图片创建一个播放对象;帧传递模块,用于将当前要播放的单帧传递给所述播放对象,并将所述播放对 象插入到播放区域;帧播放模块,用于当动画表情图片的播放周期到来时,播放存在于播放对象中 的单帧;帧循环模块用于当前帧播放完成后,将下一个单帧传递给播放对象,然后执 行帧播放模块。其中,所述帧播放模块包括播放判断模块,用于当动画表情图片的播放周期到 来时,遍历播放区域中的每个对象,判断是否为播放对象,若不是,则遍历下一个对 象,若是则判断该播放对象是否处于播放区域的可视区域中,若处于可视区,则播放存 在于播放对象中的单帧,否则,停止播放。其中,所述系统还包括会话消息接收模块,用于接收含有动画表情标识的多媒体会话消息;动画表情解析模块,用于从所述多媒体会话消息中解析出动画表情标识;动画表情图片获取模块,用于根据所述动画表情标识获取动画表情图片。(三)有益效果 本发明的动画表情图片播放方法及系统中只将当前播放的帧数据(非全部帧数 据)传递给播放对象,在大量的动画表情图片播放时显著降低了内存的占用;采用时钟 周期的方法(非创建播放线程)来控制帧的播放,并只播放处于播放区域的帧,在大量的动画表情图片播放时显著降低了 CPU的占用率,使播放更加流畅。


图1是本发明实施例的动画表情图片播放方法流程图2是本发明实施例的获取动画表情图片流程图3是图1中步骤S102具体流程图4是本发明实施例的动画表情图片播放系统结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实 施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,为发明实施例的动画表情图片播放方法流程图,包括
步骤S101,将要播放的动画表情图片按单帧进行分解,其中单帧为动画表情图 片中的一个图像帧。
要播放动画表情图片,首先要获取动画表情图片,其流程如图2所示
步骤幻01,接收含有动画表情标识的多媒体会话消息;
步骤幻02,对多媒体会话消息进行解析,
步骤S203,将解析出的文本消息插入到会话窗口消息区域;
步骤S204,将根据解析出的动画表情标识获取动画表情图片。
步骤S102,当动画表情图片的播放周期到来时依次播放所述单帧,具体流程如 图3所示
步骤S301,为每个表情图片创建一个播放对象,优选为对象连接与嵌入(Object Linking and Embedding, OLE)控件,该OLE控件为动画表情的OLE控件。
步骤S302,将当前要播放的单帧传递给所述OLE控件,当第一次播放时,所述 当前帧为第一帧,并将所述OLE控件插入到播放区域,该播放区域为显示该表情图片的 会话窗口消息区域,本实施例中会话窗口消息区域优选采用Windows的RichEdit创建。 RichEdit提供的接口 STDMETHOD(InsertOlDject) (THIS_REOBJECT FAR*lpreobject) PURE 可以插入符合OLE标准的OLE控件,即可将动画表情的OLE控件插入到会话窗口消息 区域。
步骤S303,当动画表情的播放周期到来时,遍历会话窗口消息区域的所有OLE 控件。
步骤S304,若该OLE控件不是动画表情的OLE控件,则遍历下一个OLE控 件,若是,执行步骤幻05。
步骤S305,判断该动画表情的OLE控件是否在会话窗口消息区域的可视区域内 (会话过程中,通过拖动滚动条将部分消息滚动到可视区域之外),若在可视区域内,则 执行步骤S306。
步骤S306,动画表情的OLE控件将其中的单帧绘制显示在可视区域内。
步骤S307,将下当前显示的单帧的下一个单帧传递到该动画表情的动画表情的 OLE控件,返回步骤S305。若当前显示的单帧为最后一帧,则下一个单帧为该动画表情图片的第一帧,以周而复始地显示该动画表情图片。
本发明还公开了一种动画表情图片播放系统,如图4所示,包括动画表情图 片分解模块,用于将要播放的动画表情图片按单帧进行分解;动画表情图片播放模块, 用于当动画表情图片的播放周期到来时依次播放所述单帧。
其中,所述动画表情图片播放模块包括播放对象创建模块,用于为所述动画 表情图片创建一个播放对象;帧传递模块,用于将当前要播放的单帧传递给所述播放对 象,并将所述播放对象插入到播放区域;帧播放模块,用于当动画表情图片的播放周期 到来时,播放存在于播放对象中的单帧;帧循环模块用于当前帧播放完成后,将下一 个单帧传递给播放对象,然后执行帧播放模块。
其中,所述帧播放模块包括播放判断模块,用于当动画表情图片的播放周期到 来时,遍历播放区域中的每个对象,判断是否为播放对象,若不是,则遍历下一个对 象,若是则判断该播放对象是否处于播放区域的可视区域中,若处于可视区,则播放存 在于播放对象中的单帧,否则,停止播放。
其中,所述系统还包括会话消息接收模块,用于接收含有动画表情标识的多 媒体会话消息;动画表情解析模块,用于从所述多媒体会话消息中解析出动画表情标 识;动画表情图片获取模块,用于根据所述动画表情标识获取动画表情图片。
本发明的方法和系统可广泛的用于即时通信(Instant Messaging,IM)软件,及网 页会话区要插入播放表情图片的情形。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普 通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因 此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种动画表情图片播放方法,其特征在于,包括以下步骤51将要播放的动画表情图片按单帧进行分解;52当动画表情图片的播放周期到来时依次播放所述单帧。
2.如权利要求1所述的动画表情图片播放方法,其特征在于,所述步骤S2具体包括 S21 为所述动画表情图片创建一个播放对象;S22将当前要播放的单帧传递给所述播放对象,并将所述播放对象插入到播放区域;S23当动画表情图片的播放周期到来时,播放存在于播放对象中的单帧; S24当前帧播放完成后,将下一个单帧传递给播放对象,然后执行步骤S23。
3.如权利要求2所述的动画表情图片播放方法,其特征在于,所述步骤S24中的下一 个单帧若为所述动画表情图片的最后一帧,则将第一帧传递给所述播放对象。
4.如权利要求2所述的动画表情图片播放方法,其特征在于,所述步骤S23中当动画 表情图片的播放周期到来时,遍历播放区域中的每个对象,判断是否为播放对象,若不 是,则遍历下一个对象,若是则判断该播放对象是否处于播放区域的可视区域中,若处 于可视区,则播放存在于播放对象中的单帧,否则,停止播放。
5.如权利要求2 4中任一所述的动画表情图片播放方法,其特征在于,所述播放对 象为OLE控件,播放区域为利用RichEdit创建的会话窗口消息区域。
6.如权利要求1所述的动画表情图片播放方法,其特征在于,所述步骤S1之前还包 括获取所述动画表情图片的步骤接收含有动画表情标识的多媒体会话消息; 从所述多媒体会话消息中解析出动画表情标识; 根据所述动画表情标识获取动画表情图片。
7.—种动画表情图片播放系统,其特征在于,包括动画表情图片分解模块,用于将要播放的动画表情图片按单帧进行分解; 动画表情图片播放模块,用于当动画表情图片的播放周期到来时依次播放所述单帧。
8.如权利要求7所述的动画表情图片播放系统,其特征在于,所述动画表情图片播放 模块包括播放对象创建模块,用于为所述动画表情图片创建一个播放对象; 帧传递模块,用于将当前要播放的单帧传递给所述播放对象,并将所述播放对象插 入到播放区域;帧播放模块,用于当动画表情图片的播放周期到来时,播放存在于播放对象中的单帧;帧循环模块用于当前帧播放完成后,将下一个单帧传递给播放对象,然后执行帧 播放模块。
9.如权利要求8所述的动画表情图片播放系统,其特征在于,所述帧播放模块包括 播放判断模块,用于当动画表情图片的播放周期到来时,遍历播放区域中的每个对象, 判断是否为播放对象,若不是,则遍历下一个对象,若是则判断该播放对象是否处于播放区域的可视区域中,若处于可视区,则播放存在于播放对象中的单帧,否则,停止播 放。
10.如权利要求7所述的动画表情图片播放系统,其特征在于,所述系统还包括 会话消息接收模块,用于接收含有动画表情标识的多媒体会话消息; 动画表情解析模块,用于从所述多媒体会话消息中解析出动画表情标识; 动画表情图片获取模块,用于根据所述动画表情标识获取动画表情图片。
全文摘要
本发明公开了一种动画表情图片播放方法,包括将要播放的动画表情图片按单帧进行分解;当动画表情图片的播放周期到来时依次播放所述单帧,当播放的动画表情图片在播放区域的可视区域外时,停止播放该动画表情图片的帧,还公开了一种动画表情图片播放系统,包括动画表情图片分解模块,用于将要播放的动画表情图片按单帧进行分解;动画表情图片播放模块,用于当动画表情图片的播放周期到来时依次播放所述单帧。本发明在大量动画表情图片同时播放时内存空间占用很少,CPU占用率很低,动画表情播放流畅。
文档编号G11B27/031GK102024486SQ201010282578
公开日2011年4月20日 申请日期2010年9月14日 优先权日2010年9月14日
发明者张明贺 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1