首页> 中国专利> 基于多层次状态机的媒体播放控制器、播放器及播放方法

基于多层次状态机的媒体播放控制器、播放器及播放方法

摘要

本发明公开了一种基于多层次状态机的媒体播放控制器、播放器及其播放方法,所述媒体播放控制器主要包括:面板控制器代理模块、视频播放器代理模块或/和音频播放器代理模块和次控制器代理模块均为一个层次状态机,每个层次状态机对应一种相应的抽象控制设备,用于维护和管理与之对应的控制设备的所有状态,通过所述处理模块接收消息和数据,并通过事件驱动所述层次状态机内部状态和动作;处理模块,用于接收和处理消息及数据,并供主控制器通过发送消息给所有被管理的层次状态机以实现对子设备代理状态机的管理和控制。采用本发明,能够解决耗费大量代码及占用较多的存储空间且不易扩展的缺陷,提高媒体播放控制器和播放器的系统资源利用率。

著录项

  • 公开/公告号CN103455328A

    专利类型发明专利

  • 公开/公告日2013-12-18

    原文格式PDF

  • 申请/专利权人 奥博杰天软件(西安)有限公司;

    申请/专利号CN201310358023.5

  • 发明设计人 林国勇;潘杰;

    申请日2013-08-16

  • 分类号G06F9/44;G06F9/455;

  • 代理机构北京汇泽知识产权代理有限公司;

  • 代理人刘淑敏

  • 地址 710075 陕西省西安市科技二路72号零壹广场11701室

  • 入库时间 2024-02-19 21:53:09

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-06

    授权

    授权

  • 2014-01-15

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20130816

    实质审查的生效

  • 2013-12-18

    公开

    公开

说明书

技术领域

本发明涉及基于软件状态机理论的交互式系统,尤其涉及基于多层次状态机的媒体播放控制器、播放器及其播放方法。

背景技术

自从David Hare提出状态机理论用以描述复杂的交互系统后,状态机理论很快便得到广泛的接受,并被引入到许多软件系统中。根据状态机理论,最重要的状态机主要分为有限状态机(FSM,Finite-State Machine)和层次状态机(HSM)两种。其中:

有限状态机(FSM)系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议和计算与语言的研究。其中,在数字电路中,FSM还可以用可编程逻辑设备、可编程逻辑控制器、逻辑门和触发器或继电器来实现。

而层次状态机(HSM)属于FSM的一种,但使用层次状态机(HSM)可以有效减少状态的数量,使状态之间有继承效果,能够对差异性编程提供很好的支持。因此可广泛应用在一些嵌入式系统中或资源稀缺的设备中。此外,运用层次状态机(HSM)管理设备,还能够高效地利用已开发的逻辑实现逻辑复用,具有良好的可扩展性。当增加一个设备时,只需设计这个设备的运行状态和他们之间的切换关系并设计对应的状态机,在状态中处理这个状态下的物理设备通信消息,在状态机管理器中增加这个代理设备通过消息机制即可实现对这个设备的管理。这种统一的模型便于增加新的设备,是使系统具有了优良的可扩展性。

状态机方法对事件处理句柄和方法有特定的要求,那就是他们必须是RTC(Run To Complete)类型的处理函数,如果不是,则会造成状态阻塞,系统就不能相应处理后续的消息和状态切换请求,所以状态机方法,对状态内的消息处理函数的设计有较高的要求。

可见,使用有限状态机(FSM)管理设备,会使状态机中的状态数量难于控制、状态切换变得困难,而采用层次状态机(HSM)的方法则可以有效减少状态数量,使状态的切换变得易于处理,并占用更少的系统资源,因此非常适合应用在媒体控制器、媒体播放器这样的嵌入式设备中。

发明内容

有鉴于此,本发明的主要目的在于提供一种基于多层次状态机的媒体播放控制器、播放器及其播放方法,以解决现有的层次状态机在工作时需耗费大量代码及占用较多的存储空间且不易扩展的缺陷,使媒体播放控制器和播放器在系统资源占用较少的情况下,仍然能够控制多个媒体资源在多个区域播放,并提高系统资源的利用率。

为达到上述目的,本发明的技术方案是这样实现的:

一种基于多层次状态机的媒体播放控制器,主要包括面板控制器代理模块、视频播放器代理模块或/和音频播放器代理模块、次控制器代理模块和处理模块;其中:

所述面板控制器代理模块、视频播放器代理模块或/和音频播放器代理模块和次控制器代理模块均为一个层次状态机,所述每个层次状态机对应一种相应的抽象控制设备,用于维护和管理与之对应的控制设备的所有状态,通过所述处理模块接收消息和数据,并通过事件驱动所述层次状态机内部状态和动作;

所述处理模块,用于接收和处理消息及数据,并供主控制器通过发送消息给所有被管理的层次状态机以实现对子设备代理状态机的管理和控制。

其中,所述面板控制器代理模块,包含播放源选择子模块、播放文件选择子模块、音量控制子模块和播放控制子模块,用于处理控制面板发出的控制指令和控制消息。

所述处理模块,包含消息接收子模块、呼叫处理子模块和寻址处理子模块,用于接收控制消息和控制指令,并进行相应的处理后通过消息总线发出处理结果。

所述事件是以消息的方式定义,主要包括如下两部分:事件标志ID、事件的参数和消息内容。

一种包括权利要求1所述基于多层次状态机的媒体播放控制器的媒体播放器,还包括面板控制器、次控制器、视频播放器或/和音频播放器、以及消息总线;其中:

所述媒体播放控制器,用于管理并协调各设备间的操作与通信;

所述面板控制器,主要用于播放视频和音频媒体文件;

所述视频播放器和音频播放器,分别对应媒体播放控制器中的视频播放器代理模块和音频播放器代理模块,用于根据通过面板控制器代理模块发出的指令选择和播放视频文件及音频文件;及

所述媒体播放控制器与次控制器通过消息总线传递消息、实现设备间的互联与通信。

其中,所述消息总线采用RNET数据传输协议。所述媒体播放控制器能够挂接多个控制设备和播放设备。

一种基于多层次状态机的媒体播放控制器的媒体播放方法,其特征在于,包括:

A、使媒体播放器上电,在播放系统中生成主控制器状态管理器即媒体播放控制器;

B、所述媒体播放控制器根据播放系统的链接情况找到控制面板和音频播放器并连入所述播放系统,生成相应的控制器面板代理模块和视频或/和音频播放器代理模块,以实现对该设备的管理;

C、所述媒体播放控制器初始化所述的设备,并使其各自进入运行状态;

D、通过面板控制器在运行态枚举系统资源,将其显示在面板上,并在面板上显示当前系统挂接的资源,包括显示所述媒体播放器;

E、在所述面板控制器上选择媒体播放器作为播放源,面板控制器通过发送消息给媒体播放控制器,媒体播放控制器则根据消息中的ID将消息传递给媒体播放器代理模块;

F、所述面板控制器通过发送消息给所述媒体播放器,获取所有播放列表;将所述播放列表显示在控制面板上,供用户选择播放媒体文件;

G、在面板控制器上选择拟播放的音频或/和视频媒体文件播放,并将对应的消息和数据通过媒体播放控制器转发给媒体播放器;

H、音频或视频播放控制器代理模块则跟踪对应的播放器的所有状态,包括播放状态、声音的大小状态;

I、所述面板控制器定时发送消息给所述媒体播放控制器以获取最新的播放状态和进度。

其中,步骤B所述的设备均由相应的ID唯一标识。

本发明所提供的基于多层次状态机的媒体播放控制器、播放器及其播放方法,通过利用多层次状态机来管理和控制多个媒体控制器和媒体播放器,使设备的管理有了理论依据,控制器有了良好的可扩展性,状态间的继承和复用了上级状态逻辑和消息处理功能,使差异性编程在系统开发和扩展发挥更大的作用。同时,还具有以下优点:

1)为设备提供的统一的实现模型,利用层次状态机抽象和代理具体的设备进而实现了对实体设备的管理。

2)通过媒体播放控制器之间的级联可以组成大的媒体播放系统。

3)在媒体播放控制器中应用层次状态机,能够方便的支持播放源的切换和播放设备的切换。

4)消息中包含的区域标识(ZoneID),可以方便的支持设备的分组,比如多区域、多房间中不同的播放源播放音乐的控制。

5)对系统统一广播源提供支持,比如呼叫状态下所有的播放设备自动切换到系统指定的播放源。

附图说明

图1为本发明基于多层次状态机的媒体播放控制器及播放器的系统架构示意图;

图2为系统的媒体播放过程示意图;

图3为图1所示层次状态机的示意图;

图4为与图3对应的层次状态机的数据结构及状态的层次关系图;

图5为本发明系统的主控制器所包含的状态及其状态迁移事件示意图;

图6为主控制器状态和切换过程示意图;

图7为主控制器状态间的层次关系示意图。

具体实施方式

下面结合附图及本发明的实施例对本发明的媒体播放控制器、播放器及播放方法作进一步详细的说明。

本发明的核心思想在于:利用多层次状态机实现对播放设备和播放控制设备的管理,利用状态机管理器管理并协调设备间的操作和通信。控制器对子设备的管理,通过层次状态机控制器来完成,每个子设备被分配一个唯一标识(设备ID),并在主控制器或次控制器中被抽象成一个代理设备,而每个代理的设备的管理则通过层次状态机来完成,某个设备的代理生成之后,就会加入到层次状态机管理器中,而管理器管理着所有的代理设备。 每个代理的设备继承自相同的层次状态机,因此对消息的处理和对状态的转移控制是采用统一的实现模型。

图1为本发明基于多层次状态机的媒体播放控制器及播放器的系统架构示意图。

本发明采用层次状态机管理器管理多个层次状态机(HSM),所述的每个层次状态机(HSM)是对一种控制设备的抽象,用于维护和管理某个对应的控制设备的所有状态。而层次状态机内部的状态呈现层次化,能够有效减少状态的数量,从而可使设备管理变得简单明了,程序代码也具有良好的可维护性。

这里,所述的层次状态机的内部状态和动作是通过事件驱动的,这样可减少状态和状态之间的耦合。所述事件是以消息的方式定义的(详见后述)。层次状态机管理器能够通过发送广播消息给所有的被管理的状态机,从而实现对子设备的管理和控制。

图1中所示的每个设备的代理模块(如面板控制器代理模块11、视频播放器代理模块12等)为对应物理设备的一个抽象控制设备,这个抽象控制设备也是通过层次状态机来实现的。主控制器层次状态机管理器(在本实施例中为“媒体播放控制器”),用于实现对子设备代理状态机的管理和控制,通过对所述主控制器层次状态机管理器发送消息实现对其附属设备的管理和控制,每个设备本身也被抽象成层次状态机,运用层次状态机的理论和方法,实现了对整个设备集的管理和控制。如,面板控制器3可通过消息总线2和主控制器链接和上电后,系统在主控制器中会生成相应的该面板控制器的抽象代理(即面板控制器代理模块11),用于处理该控制面板发出的指令和消息,主控制器层次状态机管理器1(通过处理模块15)则根据所述指令和消息的种类进行相应的处理。

媒体播放控制器1,通过多层次状态机来管理媒体播放器和控制器之间的协调及其状态间的切换。控制器分为主控器(与所述媒体播放控制器对应的主控设备)和次控制器5,主控制器是协调次控制器5的“神经中枢”,每个媒体播放控制器可以挂接多个控制设备和播放设备。

这里,媒体播放控制器1,主要利用多层次状态机实现对播放控制设备和播放设备的管理,通过利用状态机管理器管理并协调各设备间的操作与通信;并通过消息总线实现设备之间的互联和通信。所述媒体播放控制器(主控制器层次状态机管理器)1发出的控制消息和控制指令通过RNET总线传输。RNET数据传输协议,是本发明的系统各部件间相互通信的基础。

这里,所述RNET数据传输协议,用于系统设备间通信的特定的消息格式,是设备可扩展的最基本的支持组件,RNET协议包的格式定义如表1所示:

表1:

 参考表1,一个消息可分为协议头,消息体和协议尾。其中:

消息头定义了消息发送的发起者源设备ID、消息的接收端目标设备ID和消息的类型。系统中的每个设备都会有相应的ID来标识这个设备。如,目标设备ID如果是0x7F, 表示所有的面板设备,如果是0x7E则表示所有的控制器,如果是0x7D则表示所有的设备。这些特殊设备ID的定义主要用于广播消息的。

消息的类型定义如表2所示:

表2:

下面对本发明利用消息总线实现设备间的互联和通信的过程进行说明。

如图1所示,所述层次状态机管理器中有定义的消息队列,当被代理的设备有消息产生时,所述消息就开始排队进入该消息队列中等待处理。如前所述,消息的基本内容包括消息的源头和目标(设备ID)、消息的参数(如d1、d2、sData)等,d1和d2的具体值与消息的类型有关,譬如,播放歌曲消息,sData中会包含歌曲名等信息。其基本的消息处理流程如下:

步骤11:设备产生消息并通过消息总线发布所述消息;

步骤12:将所述消息放入层次状态机管理器的消息队列中等待处理;

步骤13:通过消息分发器将所述消息分发给对应的设备代理模块;

步骤14:利用设备代理模块(即对应的层次状态机)的消息处理机制处理所述消息;

步骤15:如果是状态迁移消息则将层次状态机迁移状态,若是普通消息,则由对应的状态处理函数进行处理;

步骤16:根据步骤15对应的不同的消息处理结果,标记所述的消息处理状态。

这样,上述主控制器(与所述媒体播放控制器对应的主控设备,相应的,可对应主控制器层次状态机管理器)和次控制器5通过消息总线2进行互联,与消息中包含的设备ID(对应不同设备)可以实现一个更大的级联效果,即组成级联媒体播放系统,能够突破每个控制器连接媒体播放器的数目限制。

如图1所示,本发明的具体实施例中基于多层次状态机的媒体播放器系统,主要包括媒体播放控制器(主控制器层次状态机管理器)1、消息总线2、面板控制器3、视频播放器4、次控制器5以及音频播放器6。其中:

所述视频播放器4或/和音频播放器6分别与次控制器5、消息总线2以及媒体播放控制器1相组合,便可形成一个功能完备的媒体播放器。如,所述媒体播放器的媒体播放控制器1和次控制器5通过消息总线2传递消息互联在一起,便可形成一个更大的、可级联的媒体播放系统,能够突破每个控制器连接媒体播放器的数量限制。

这里,所述的媒体播放控制器1,主要包括面板控制器代理模块11、视频播放器代理模块12或/和音频播放器代理模块14、次控制器代理模块13、以及处理模块15。

所述面板控制器代理模块11,主要包括播放源选择子模块111、播放文件选择子模块112、音量控制子模块113和播放控制子模块114,用于处理通过面板控制器3发出的控制指令和控制消息。

所述处理模块15,主要包括消息接收子模块151、呼叫处理子模块152和寻址处理子模块153。这里,所述消息接收子模块151,用于接收控制消息和控制指令;所述呼叫处理子模块152,用于对请求指令进行处理;所述寻址处理子模块153则用于实现相应的指令和数据的地址分配及寻址功能。

所述面板控制器3对应其生成的代理即面板控制器代理模块11,主要用于播放视频和音频等多媒体文件。

所述视频播放器4和音频播放器5,分别对应视频播放器代理模块12和音频播放器代理模块14,用于根据从面板控制器代理模块11发出的指令选择和播放视频文件及音频文件。

图2为利用本发明的媒体播放控制器进行媒体播放的过程流程图。参考图1,假设媒体播放控制器1与面板控制器3和音频播放器6/视频播放器4相连,组成一个简单的音频/视频播放系统。所述媒体播放控制器1可与多个音频播放器及多个视频播放器进行并行播放。下面以音频/视频播放过程为例进行说明,该媒体播放过程包括:

步骤201:媒体播放系统上电,主控制器在所述系统中生成主控制器状态管理器即媒体播放控制器。

步骤202:主控制器根据系统的链接情况找到控制面板和音频/视频播放器连入所述播放系统,并生成相应的控制器面板代理模块音频/视频播放器代理模块,从而实现对对应的这2个设备的管理。

这里,在媒体播放系统中,这两个设备都会有相应的ID来唯一标识。 

步骤203:主控制器通过这两个设备对应的代理模块初始化这两个设备,并各自进入运行状态。

步骤204:面板控制器在运行态会枚举系统资源,显示在面板上,在面板上显示当前系统挂接的资源,包括显示所述媒体播放器。

步骤205:在面板控制器上选择媒体播放器作为播放源,面板控制器通过发送消息给主控制器,主控制器会根据消息中的ID把消息传递给媒体播放器代理模块。

步骤206:面板控制器通过发送消息给媒体播放器,获取所有播放列表;所述播放列表可以显示在控制面板上,以供用户选择播放媒体文件。

步骤207:用户可以在面板控制器上选择要播放的音频/视频媒体文件播放,这些消息和数据都是通过主控制器转发给所述媒体播放器。

步骤208:利用控制器代理模块跟踪播放器的所有状态,如播放状态、声音的大小状态等。

步骤209:面板控制器定时发送消息给主控制器以获取最新的播放状态和进度。

图3为图1所示层次状态机的示意图,图4为与图3对应的层次状态机的数据结构及状态的层次关系图。

本发明的层次状态机中的状态是层次状态机管理的最基本单元,程序中定义的状态包含有状态的名字 Name_,指向上级状态的指针Super_,以及本状态的消息处理句柄Hndlr_。消息处理句柄在构造状态实例的时候把它传给这个状态实例用以处理这个状态所关心的消息。

在状态机中定义的Super_指针是层次状态机形成层次状态父子状态关系的关键所在,这些层次关系是在状态机定义的时候生成的。 每个设备代理在系统中是一个独立的状态机,他们可以根据物理设备的特性,实现自己不同状态和状态迁移从而实现对设备的管理。

如图3所示,状态s2是状态s21和状态s22的上级状态,而状态s1和s2是上级状态(Top)的下级状态,可以看出状态间呈现一种层次状态,可以这样理解如果系统处于s22状态,那么系统也同时处于s2和Top状态,也就是s2是s22的上级状态而Top状态是s2的上级状态。

状态之间的切换是事件驱动的,比如e1事件是系统由状态s1切换到了s21,而e4是状态由s21切换到了s22。

如图4所示,图3中的五种状态的数据结构形成了一个单向树,每个状态都对应的Super指针指向上一个状态,从而形成了一个层次结构,如S21的状态Super指向s2状态,而s1的Super指向Top状态,而Top状态是顶层状态,它的Super指向Null。

这里,系统事件分为两种:普通事件和状态迁移事件。其中:

普通事件不会引起状态的迁移,而状态迁移事件则会引发状态间切换,如PageTriggerSense(d1=0)就是普通事件,它是呼叫感知状态的内部事件。而系统唤醒事件System_Wake事件则会引发系统由待机状态(StandBy)到家庭影院空闲状态的切换。

所述事件是以消息的方式定义,主要包括2个部分:

1)事件标志ID;

2)事件的参数和消息内容。

状态机通常会同时管理多个状态、管理状态的迁移、负责传递系统消息给状态处理函数、负责状态的入口和退出处理等。层次状态机(HSM)是设备抽象类的基类,也就是定义了系统中所有设备抽象类的基本行为和活动接口。这个类可以管理状态机的添加、删除广播消息给所有的状态机以实现对整个系统的管理。也是系统可扩展性的关键所在,主控制器通过主控制器层次状态机管理器实现对挂接设备代理管理所有的媒体设备,易于扩展。

图5为本发明系统的主控制器所包含的状态及其状态迁移事件示意图。如图5所示,所述的媒体播放控制器1,有11个状态,分别是顶级状态(Top),开机状态(Startup),运行状态(On),空闲状态(Idle),家庭影院循环空闲状态(HomeTheatreWhileIdle),待机状态(standby),出产初始化状态(FactoryInit),关机状态(Shutdown),呼叫状态(Page),呼叫触发状态(TriggeredPage)和呼叫感知状态等。其中:

运行状态:进行媒体播放,快进快退,下一曲,上一曲,以及数据源切换等的操作,对数据源的声音大小调节等。

空闲状态:系统所在的“无所事事”,此时系统一般可以运行垃圾回收等的工作。

家庭影院循环空闲状态:在这个家庭影院空闲状态下,控制器一般做些和播放音乐和视频播放无关的操作。

待机状态:是系统进入省电模式,功耗降到最低,除去必要的电路需要电源维持,其他电路关闭,等待系统被重新换取。

出厂初入初始化状态: 这个状态下,控制器把设置回复到出厂状态,所有用户设置都会被覆盖。

关机状态: 系统正在关机状态,这个状态下,系统会准备关机,关机状态下,系统会处理比如像保存设置进程数据等操作。

呼叫状态: 控制器支持级联,可以组成一个级联的媒体系统,呼叫状态下所有的媒体播放器设备的播放流被暂停转而播放呼叫信息。

呼叫触发状态:是呼叫状态的子状态,是用于处理呼叫被触发后系统需要处理的,媒体流,如转向音频流到呼叫音频流。

呼叫感知状态: 也是个呼叫状态的子状态,是一个短暂的状态。

所述这些状态之间的切换是由相应的事件驱动的,如从启动状态(Startup)到空闲状态(Idle)的切换是在事件“设备地址分配”完成后(Addr AssignComplete)进行的。又比如播放器从运行状态(On)到呼叫触发状态(TriggerPage)和呼叫感知状态(sensedPage)分别是在事件呼叫感知信号(PageSigalSense)和呼叫触发感知事件(PageTiggeredSense)完成的切换。

图6为主控制器状态和切换过程示意图。如图6所示,媒体播放控制器状态切换过程如下:

1)媒体播放控制器上电进入开机状态,媒体播放控制器开始为此主控设备分配地址,直到地址完成分配(Addr_Assign_Complete)。

2)系统进入运行状态 (On) 和空闲状态(Idle)。

3)在空闲状态下,如果收到事件“更新系统开始信号”(Update_System_On),系统由空闲(Idle)向系统运行(On)迁移,并完成系统的更新操作。

4)如果系统收到系统等待信号(SYSTEM_STANDBY)系统会由空闲(Idle)状态向系统待机状态转换(Standby)。

5)如果在系统运行状态(On)收到出厂初始化信号(FactoryInit),系统则由系统运行状态(On)向系统初始化状态(FactoryInit)切换。

6)如果在系统运行状态(On)在接收到 “系统更新开始”信号(信号中d1=0)后进入“空闲状态”。

7)完成出厂初始化状态后(Factory_Init_Complete)系统向系统关机状态迁移准备关机。

8)从系统待机状态(Standby)收到家庭影院触发信号,系统会由待机状态向家庭影院状态切换。

9)系统在待机状态(Standby)接收到系统唤醒(SYSTEM_WAKE)信号后,能够切换到空闲状态(Idle)。

10)系统运行状态(On)收到呼叫感知信号,系统会有系统运行状态向呼叫状态切换(Page)。

状态之间的层次关系是是逻辑复用的基础,是实现差异性编程(Programming By Difference)的关键所在,比如系统如果在家庭影院空闲状态下,那么系统同时也在:顶级状态,系统运行状态和空闲状态,这等于家庭影院空闲模式复用了顶级状态,系统运行状态和空闲状态下的处理逻辑,实现了状态的继承和复用进而实现了差异化逻辑编程。

图7为主控制器状态间的层次关系示意图。如图7所示,主控制器状态间的层次关系,这种关系是一种单向的树形层次关系。比如呼叫广播,系统会通过呼叫广播触发信号使系统进入呼叫状态,在呼叫状态下,系统的其他的媒体设备的信号会被在暂时屏蔽掉而转而播放呼叫广播音频流从而是每个播放设备上播放呼叫音频。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号