多进程动画切换方法、装置及显示屏与流程

文档序号:13769921阅读:198来源:国知局

本发明涉及显示技术领域,尤其是涉及一种多进程动画切换方法、装置及显示屏。



背景技术:

目前应用于大屏的播放器方案多为启用多个播放器进程,每个进程播放一个画面场景,当需要场(一幅画面)显示时,将此场所在的播放器窗体激活并置顶,需要进行画面切换。由于操作系统的限制无法做到对两个独立的窗体进行动画过渡,在切换时有以下两种方式:

(1)不隐藏窗体,只切换窗体的z序(当前窗口从屏幕底部到屏幕最高层的窗口句柄的排序)到最前面。此方式会有较大的渲染压力,有很大的几率会导致系统无法响应渲染而导致消息队列堵死的假象。

(2)先隐藏上场画面,再显示当前场画面。此方式有几率因为出现上场画面隐藏后当前场画面还没显示出来而导致的“漏桌面”(显示空窗期,即无任何窗体处于显示状态)的情况。

因此上述播放器的画面切换方法的切换效果差。



技术实现要素:

有鉴于此,本发明的目的在于提供一种多进程动画切换方法、装置及显示屏,可以提高进程切换时的显示效果。

第一方面,本发明实施例提供了一种多进程动画切换方法,应用于播放器,该方法包括:在接收到进程切换指令时,控制进程控制播放器的当前进程暂停工作;控制进程采集当前进程的ui快照;根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画;控制进程控制欲切换进程进行显示并恢复工作。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,控制进程为采用master机制管理渲染agent的管理进程。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,控制进程控制播放器的当前进程暂停工作的步骤之前,还包括:控制进程申请切换资源锁,在申请成功后执行控制进程控制播放器的当前进程暂停工作的步骤。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,控制进程采集当前进程的ui快照的步骤,包括:控制进程对当前进程按照master的窗体位置进行屏幕截图;拷贝屏幕截图作为当前进程的ui快照。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画的步骤,包括:提取预先存储的欲切换进程的ui快照;按照系统预定规则将当前进程的ui快照和欲切换进程的ui快照的动画进行显示。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,在控制进程控制欲切换进程进行显示并恢复工作的步骤之后,还包括:控制进程广播切换完成的通知消息,以使连接设备的显示画面同步。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在控制进程控制欲切换进程进行显示并恢复工作的步骤之后,还包括:控制进程释放切换资源锁。

第二方面,本发明实施例还提供一种多进程动画切换装置,应用于播放器,该装置包括:暂停模块,用于在接收到进程切换指令时,通过控制进程控制播放器的当前进程暂停工作;采集模块,用于通过控制进程采集当前进程的ui快照;动画执行模块,用于根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画;切换模块,用于通过控制进程控制欲切换进程进行显示并恢复工作。

第三方面,本发明实施例还提供一种显示屏,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面及其各可能的实施方式之一提供的方法。

第四方面,本发明实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面及其各可能的实施方式之一提供的方法。

本发明实施例带来了以下有益效果:本发明实施例提供的多进程动画切换方法、装置及显示屏,在进行进程切换时,先暂停当前进程并根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画,再控制欲切换进程进行显示并恢复工作,通过两个进程的ui快照的动画显示,可以提高进程切换时的显示效果,实现画面无缝过渡切换。

本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种多进程动画切换方法的流程示意图;

图2为本发明实施例提供的另一种多进程动画切换方法的流程示意图;

图3为本发明实施例提供的一种多进程动画切换装置的结构示意图;

图4为本发明实施例提供的另一种多进程动画切换装置的结构示意图;

图5为本发明实施例提供的另一种多进程动画切换装置的结构示意图;

图6为本发明实施例提供的另一种多进程动画切换装置的结构示意图;

图7为本发明实施例提供的一种显示屏的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前应用于大屏的播放器方案多为启用多个播放器进程,每个进程播放一个画面场景,当需要场(一幅画面)显示时,将此场所在的播放器窗体激活并置顶(系统内部有一个z-order序列,记录着当前窗口从屏幕底部(假想的从屏幕到眼睛的方向),到屏幕最高层的一个窗口句柄的排序),同时将当前场(当前正在播放的画面)注销(释放当前画面所有的资源占用,停止画面的后台工作,关闭与服务端的链接)后隐藏。由于操作系统的限制无法做到对两个独立的窗体进行动画过渡,因此无法做出上下两场的无缝过渡,切换效果差。基于此,本发明实施例提供的一种多进程动画切换方法、装置及显示屏,可以提高进程切换时的显示效果,实现画面无缝过渡切换。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种多进程动画切换方法进行详细介绍。

实施例1

本发明实施例提供了一种多进程动画切换方法,该方法应用于播放器。图1是本发明一种多进程动画切换方法的流程示意图,包括如下步骤:

步骤s102,在接收到进程切换指令时,控制进程控制播放器的当前进程暂停工作。

其中,上述控制进程为采用master机制管理渲染agent的管理进程。在本实施例中以master(宿主)机制来管理所有的agent(渲染代理)为例,在渲染处理上采用插件模式将agent的ui(userinterface,用户界面)元素投放到大屏的可视区域,由每一个agent来负责各自区域的渲染。

在进行上下场切换时先行注销上场画面所引用的资源、暂停所有的任务、暂停脚本、暂停计时器、暂停动画、暂停数据推送和数据处理等后台工作部件,以减少系统运算压力和渲染压力。

步骤s104,控制进程采集当前进程的ui快照。

为了在进程切换期间显示画面,采用显示进程的ui快照的方式,包括当前进程的ui快照和欲切换进程的ui快照。例如,采集当前进程的ui快照的步骤具体可以通过屏幕截图的方式,包括:控制进程对当前进程按照master的窗体位置进行屏幕截图,拷贝屏幕截图作为当前进程的ui快照。

步骤s106,根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画。

在得到当前进程的ui快照和欲切换进程的ui快照后,使用两者进行动画显示,从而达到进程切换时上下场无缝切换。在执行动画时,下场画面是被隐藏的,需等待动画执行完成后才能显示出真实的场画面,在此之前都是显示场的ui快照。其中,预先存储的ui快照可以是在该进行运行时截图保存的,例如在该进程加载完成后进行截图。

上述执行动画具体包括:提取预先存储的欲切换进程的ui快照;按照系统预定规则将当前进程的ui快照和欲切换进程的ui快照的动画进行显示。例如,使用微软的wpf(windowspresentationfoundation,窗口呈现基础),将上下场的ui快照通过预置动画模式进行先后显示,例如两个ui快照通过百叶窗形式切换。考虑到保证切换流畅度,动画还可以使用显卡gpu执行渲染。

步骤s108,控制进程控制欲切换进程进行显示并恢复工作。

在动画显示完成后,进行该欲切换进程的真实的场画面的显示,并且控制该欲切换进程进行恢复动画、恢复脚本、恢复计时器、恢复后台线程以及恢复数据推送。

本发明实施例提供的上述多进程动画切换方法,在进行进程切换时,先暂停当前进程并根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画,再控制欲切换进程进行显示并恢复工作,通过两个进程的ui快照的动画显示,可以提高进程切换时的显示效果,实现画面无缝过渡切换。

考虑到保证其他线程或者整个设备持续的流畅工作,在步骤s102之前,还包括:控制进程申请切换资源锁,在申请成功后执行控制进程控制播放器的当前进程暂停工作的步骤。由于切换指令来自于其他线程甚至于其他设备,例如显示屏连接的键盘、手机、电脑或控制台等,会接收到多个切换命令。

master可以开启一个画面切换队列来保证其他线程或者设备持续的流畅工作,接收到指令后只需要将指令转换为job(工作)追加到切换队列即可。由于不能跨线程来访为ui,为了保障ui线程的持续稳定的工作尽量减轻工作压力,需要新增一个队列维护锁来保证同一时间只有1个job在执行。master申请切换资源锁,在申请成功后执行切换。在步骤s108执行后,上述方法还包括控制进程释放切换资源锁。

考虑到连接至显示屏的其他设备的同步显示问题,本实施例提供的上述方法在步骤s108之后,还包括:控制进程广播切换完成的通知消息,以使连接设备的显示画面同步。

本发明实施例提供的上述多进程动画切换方法,在进行进程切换时加入了切换资源锁,以对切换命令的执行进行控制,保证切换命令按顺序依次进行,从而保证设备流畅工作;在切换完成后还通过广播完成消息来同步其他设备画面状态。

实施例2

本发明实施例提供了一种多进程动画切换方法,应用于播放器,在本实施例中以master(宿主)机制来管理所有的agent(渲染代理)为例,在渲染处理上采用插件模式将agent的ui(userinterface,用户界面)元素投放到大屏的可视区域,由每一个agent来负责各自区域的渲染。

master采用如下的工作部件来完成播放器的工作:

agentpool(渲染进程池)用于启动agent保证对进程资源的最大程度的利用;

agentcontext处理agent的相关工作事宜(如:异常监听,资源监视,rpc调度);

agenthost处理agent的ui显示和切换;

snapbuilder提取agent的ui快照;

instructioncontext指令处理。

利用专有的线程来处理来自各方的各种指令(例如:agent的开启,关闭,切换,导出ui快照等)并建立对应的处理机制(例如:切换agent使用的异步栈,打开agent使用的异步队列)来确保instructioncontext能持续地及时地接收指令。

参见图2所示的一种多进程动画切换方法的流程示意图,包括如下步骤:

步骤s202,master申请切换资源锁。

由于切换指令来自于其他线程甚至于其他设备,master开启一个画面切换队列来保证其他线程或者设备持续的流畅工作,接收指令的地方只需要将指令转换为job追加到切换队列即可。由于不能跨线程来访为ui,为了保障ui线程的持续稳定的工作,尽量减轻ui的工作压力,需要新增一个队列维护锁来保整同一时间只有1个job在执行。

步骤s204,master通过ipc暂停画面的内部工作。

为减少系统运算压力和渲染压力,需要暂停动画,暂停脚本,暂停计时器,后台线程暂停,暂停数据推送,master可以通过(inter-processcommunication,进程间通信)对进程进行控制。

步骤s206,master更新当前场的画面ui快照缓存。

拷贝屏幕的内存截图按照master的窗体位置截图,保证master托管host的消息队列不堵塞。

步骤s208,master取出下场和当前场的ui快照并执行动画。

因为受wpf的渲染机制限制,需要在动画执行前隐藏真实的场画面显示上下场的ui快照,等待动画执行完成后才能显示出真实的场画面,在此之前都是显示场的ui快照。为了保证切换流畅度可以使用的显卡渲染级别的shadder特效。

步骤s210,master通过ipc恢复画面的内部工作。

其中包括恢复动画,恢复脚本,恢复计时器,恢复后台线程和恢复数据推送。

步骤s212,master广播切换完成的通知。

通过广播切换完成的通知,可以同步其他设备的画面状态。

步骤s214,master通过ipc执行画面切换完成事件。

步骤s216,master释放切换资源锁。

本发明实施例提供的上述多进程动画切换方法,在进行进程切换时,先暂停当前进程并根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画,再控制欲切换进程进行显示并恢复工作,通过两个进程的ui快照的动画显示,可以提高进程切换时的显示效果,实现画面无缝过渡切换。

实施例3

本发明实施例提供了一种多进程动画切换装置,应用于播放器,参见图3所示的多进程动画切换装置的结构示意图,包括暂停模块31、采集模块32、动画执行模块33和切换模块34,上述各模块的功能如下:

暂停模块31,用于在接收到进程切换指令时,通过控制进程控制播放器的当前进程暂停工作;

采集模块32,用于通过控制进程采集当前进程的ui快照;

动画执行模块33,用于根据当前进程的ui快照和预先存储的欲切换进程的ui快照执行动画;

切换模块34,用于通过控制进程控制欲切换进程进行显示并恢复工作。

参见图4所示的多进程动画切换装置的结构示意图,上述装置还包括:资源锁申请模块41,用于申请切换资源锁,在申请成功后触发暂停模块31执行控制播放器的当前进程暂停工作的步骤。

参见图5所示的多进程动画切换装置的结构示意图,上述装置还包括:同步模块51,用于广播切换完成的通知消息,以使连接设备的显示画面同步。

参见图6所示的多进程动画切换装置的结构示意图,上述装置还包括:资源锁释放模块61,用于释放切换资源锁。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的多进程动画切换装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

实施例4

本发明实施例还提供了一种显示屏,参见图7所示的一种显示屏的结构示意图,包括处理器700和机器可读存储介质701,机器可读存储介质701存储有能够被处理器700执行的机器可执行指令,处理器700执行机器可执行指令以实现上述方法。

图7所示的显示屏还包括总线702和通信接口703,处理器700、通信接口703和机器可读存储介质701通过总线702连接。

其中,机器可读存储介质701可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口703(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线702可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器700可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器700中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器700可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于机器可读存储介质701,处理器700读取机器可读存储介质701中的信息,结合其硬件完成前述实施方式的方法的步骤。

本发明实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述实施方式的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明实施方式的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施方式,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施方式对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施方式技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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