一种嵌入式多媒体播放系统及方法

文档序号:6368745阅读:159来源:国知局
专利名称:一种嵌入式多媒体播放系统及方法
技术领域
本发明涉及多媒体播放技术领域,尤其涉及一种嵌入式多媒体播放系统及方法。
背景技术
随着高清电视机的普及,用于处理高清视频的嵌入式设备得到了飞快的发展。目前,主流的嵌入式多媒体播放系统的架构主要包括基于Qt/Embedded, Mini⑶I (GraphicalUser Interface,图形用户界面),MicrowindoW等框架。“小”是MiniGUI典型的优点,但其控件制作粗糙,适用于硬件资源紧张的嵌入式系统,随着嵌入式处理器运算能力不断增强以及成本的不断下降,Mini⑶I的优势也越来越小。MicrowindoW其图形引擎存在许多问题,如没有任何硬件加速能力、存在许多低效算法等。Qt/Embedded是Qt产品家族中专门面向嵌入式应用开发平台的版本,是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好。现在世界各地开发嵌入式多媒体播放系统的人员广泛采用Qt/ Embedded作为系统框架。然而,无论是基于Mini⑶I框架还是Qt/Embedded框架,在设计嵌入式多媒体播放系统中均存在稳定性和容错性的问题。传统的嵌入式多媒体播放系统的设计架构,如图I所示,前台用户界面与系统控制部分,使用Qt/Embedded框架的纯C++语言开发来提供控制操作以及⑶I用户界面。这种传统的设计方法,作为显示的用户图形界面和后台控制全部都是使用Qt/Embedded框架。用户通过图形用户界面,将外围输入设备的控制指令传递给系统,系统接收到控制信号进行相应的操作处理,之后调用解码驱动,对媒体文件进行解码播放,最后输出到显示设备。这种架构设计的优点是结构简单、开发迅速、可移植性强。但缺点也很明显。由于传统多媒体系统架构设计方法使用纯C++语言设计,前台界面和后台控制直接进行数据通讯,模块之间耦合度高,因此前台或后台任何一方出错,均会导致整个系统瘫痪。系统的容错性下降,稳定性不高,给用户的实际使用带来一系列的不便。例如用户在观看影片时由于误操作而使后台控制部分陷入瘫痪,随之而来整个系统的崩溃,用户只有重启系统才可继续使用。因此,有必要提供一种新的嵌入式多媒体播放系统及方法来解决上述缺陷。

发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种改进的嵌入式多媒体播放系统设计架构,能够提高系统的稳定性与容错性。为了解决上述问题,本发明提出了一种嵌入式多媒体播放系统,适用于控制播放多媒体信息,包括前台界面、中间件及后台控制模块,所述前台界面为基于HTML (HypertextMarkup Language,超文本标记语言)、CSS(Cascading Style Sheet,级联样式表)及JavaScript语言的图形用户界面;所述中间件基于Qt/Embedded,用于提供接口支持图形用户界面的显示输出,并与后台控制模块连接;所述后台控制模块采用标准C语言,用户从图形用户界面输入信息,所述中间件通过接口接收用户输入的信息,所述后台控制模块处理输入的信息并进行相应的操作,调用驱动进行解码播放。较佳地,所述中间件包括浏览器接口单元及接收用户输入单元,所述浏览器接口用于用户输入输出信息的显示,所述接收用户输入单元通过所述浏览器接口接收并存储用户输入的信息并传递给后台控制模块。较佳地,所述后台控制模块包括处理输入信息单元、文件操作单元、进程操作单元以及驱动调用和解码输出单元,所述处理输入信息单元处理中间件接收到的用户输入的信息,根据输入的信息,进行相应的文件操作及进程操作,所述进程操作单元与所述驱动调用和解码输出单元之间通过管道进行通讯连接,所述驱动调用和解码输出单元驱动调用程序对多媒体信息进行解码及输出。相应地,本发明还提供了一种嵌入式多媒体播放方法,包括以下步骤用户通过基于HTML、CSS及JavaScript语言的图形用户界面输入信息;基于Qt/Embedded的中间件提供接口接收用户输入的信息;基于C语言对用户输入的信息进行处理,并进行相应的文件 及进程操作,调用驱动进行解码播放。本发明实施例的嵌入式多媒体播放系统及方法,建立了前台界面-中间件-后台控制的新型系统框架,将Qt/Embedded作为中间件,把图形用户界面和后台控制模块从Qt/Embedded框架中分离出来,提供了互相访问的接口,降低了传统系统架构中前后台模块的耦合度,提高了系统的容错能力和稳定性,同时也利用了 Qt开发简单、跨平台的特性;使用C语言实现后台控制与进程通信控制,在嵌入式的硬件环境中提高了资源的使用效率,加快了程序的运行速度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图I是传统的嵌入式多媒体播放系统的结构框图;图2是本发明实施例的嵌入式多媒体播放系统的结构框图;图3是本发明实施例的嵌入式多媒体播放系统运行的流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如上所述,为了解决传统架构中模块耦合度高的问题,本发明提出前台界面-中间件-后台控制的新架构。作为前台的图形用户界面不直接与后台控制部分进行通信,而是将数据交给Qt/Embedded进行处理,Qt/Embedded根据接收到的信息,调用相应的后台模块。相比于传统的架构采用纯C++设计的前后台模块之间直接通讯,改进的系统架构通过Qt/Embedded作为中间件,降低了前后台之间的耦合程度,增强了系统的容错性。
具体地,参考图2,本发明实施例的嵌入式多媒体播放系统,适用于控制播放多媒体信息,其包括前台界面、中间件及后台控制模块,所述前台界面为基于HTML、CSS及JavaScript语言的图形用户界面;所述中间件基于Qt/Embedded,用于提供接口支持图形用户界面的显示输出,并与后台控制模块连接;所述后台控制模块采用标准C语言,用户从图形用户界面输入信息,所述中间件通过接口接收用户输入的信息,所述后台控制模块处理输入的信息并进行相应的操作,调用驱动进行解码播放。其中,所述前台界面的图形用户界面采用HTML+CSS (层叠样式表)显示设计,由JavaScript语言进行控制响应,后台控制以及解码部分采用标准C语言进行设计,而解码播放部分在整个系统主进程中作为一个子进程运行。Qt/Embedded作为图形用户界面与控制解码的中间件,向上通过提供浏览器接口支持图形用户界面的显示输出,并与前台的JavaScript函数进行数据交换,向下提供控制模块封装接口,采用管道通讯技术与控制解码部分进行信息通讯。HTML语言是一种描述性语言,功能强大,支持不同数据格式的文件镶入,可以使用在广泛的平台上,这也是继承传统多媒体系统设计方案可移植性的条件之一。CSS为层叠样式表,使用其可对HTML中的元素进行控制,对于同一个页面视觉效果,采用CSS布局的页面容量是只使用HTML编码的页面文件容量的1/2。浏览器就不用去编译大量冗长的标签,这对于主频相对比较低的嵌入式CPU会提高效率,加快显示速度。
·
交互性设计上,通过JavaScript语言实现。在浏览器容器中注册自定义的用于访问后台遥控和解码输出的函数接口,当用户点击触发JavaScript函数之后,浏览器容器进行响应,实现相应的操作功能。较佳地,所述中间件包括浏览器接口单元及接收用户输入单元,所述浏览器接口用于用户输入输出信息的显示,所述接收用户输入单元通过所述浏览器接口接收并存储用户输入的信息并传递给后台控制模块。Qt/Embedded作为联系前台与后台的桥梁,需要提供一系列的接口,以供前后台进行调用。浏览器是作为图形用户界面的容器,所有用户看到的交互界面,都是在这个浏览器中进行显示。Qt/Embedded本身提供WebKit核心的浏览器控件,但是为了满足用户使用的方便,需要对提供的浏览器控件进行修改,去掉浏览器的地址栏、工具栏和状态栏,只保留用于显示网页的部分。较佳地,所述后台控制模块包括处理输入信息单元、文件操作单元、进程操作单元以及驱动调用和解码输出单元,所述处理输入信息单元处理中间件接收到的用户输入的信息,根据输入的信息,进行相应的文件操作及进程操作,所述进程操作单元与所述驱动调用和解码输出单元之间通过管道进行通讯连接,所述驱动调用和解码输出单元驱动调用程序对多媒体信息进行解码及输出。本发明将解码输出的部分单独封装,封装的程序在主进程中作为其子进程动态创建。主进程与子进程的信息交换,通过管道通讯来实现。由于管道是半双工的,数据在同一时刻只能单向流动;需要同步通信时,就要建立两个管道,一条用来发送指令给子进程,另一条重定向子进程的标准输出,主进程监听扫描管道数据,判断解码播放状态。所述后台控制模块的主要功能是系统的文件操作,管道通信,以及调用驱动进行解码播放。相比传统设计架构中Qt直接调用解码驱动接口对文件进行解码,本发明实施例的嵌入式多媒体播放系统架构将解码部分单独封装,从而降低了系统的耦合度,提高了系统的运行速度。在系统运行时,随着用户的选择,解码输出程序会被动态地创建为子进程。主进程在接收到前台用户的控制信息之后,通过发送管道将控制信息传递给子进程,用来实现解码输出及播放控制功能,而通过接收管道,主进程获取子进程的输出信息,判断子进程的状态。播放完成之后,主进程判断子进程为终止状态,返回图形用户界面,若子进程在解码过程中发生错误,主进程会kill掉子进程,从而释放系统资源。新架构将解码部分从传统架构中单独分离出来,解码过程Qt/Embedded并不参与,这样的设计也是多媒体系统高容错性的保证之一。参考图3,相应地,本发明还提供了一种嵌入式多媒体播放方法,包括以下步骤用户通过基于HTML、CSS及JavaScript语言的图形用户界面输入信息;基于Qt/Embedded的中间件提供接口接收用户输入的信息;基于C语言对用户输入的信息进行处理,并进行相应的文件及进程操作,调用驱动进行解码播放。具体地,用户通过图形用户界面的显示输入信息/指令,如是关机指令,则结束程序控制;其他指令由JavaScript语言进行控制响应。基于Qt/Embedded的浏览器与前台的JavaScript函数进行数据交换,采用管道通讯 技术与控制解码部分进行信息通讯,解码后的多媒体信息在嵌入式硬件平台上经过帧缓冲后,输出实现播放。本发明实施例的嵌入式多媒体播放系统及方法,建立了前台界面-中间件-后台控制的新型系统框架,将Qt/Embedded作为中间件,把图形用户界面和后台控制模块从Qt/Embedded框架中分离出来,提供了互相访问的接口,降低了传统系统架构中前后台模块的耦合度,提高了系统的容错能力和稳定性,同时也利用了 Qt开发简单、跨平台的特性;使用C语言实现后台控制与进程通信控制,在嵌入式的硬件环境中提高了资源的使用效率,加快了程序的运行速度。以上对本发明实施例所提供的嵌入式多媒体播放系统及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种嵌入式多媒体播放系统,适用于控制播放多媒体信息,其特征在于,包括前台界面、中间件及后台控制模块,所述前台界面为基于HTML、CSS及JavaScript语言的图形用户界面;所述中间件基于Qt/Embedded,用于提供接口支持图形用户界面的显示输出,并与后台控制模块连接;所述后台控制模块采用标准C语言,用户从图形用户界面输入信息,所述中间件通过接口接收用户输入的信息,所述后台控制模块处理输入的信息并进行相应的操作,调用驱动进行解码播放。
2.根据权利要求I所述的嵌入式多媒体播放系统,其特征在于,所述中间件包括浏览器接口单元及接收用户输入单元,所述浏览器接口用于用户输入输出信息的显示,所述接收用户输入单元通过所述浏览器接口接收并存储用户输入的信息并传递给后台控制模块。
3.根据权利要求I所述的嵌入式多媒体播放系统,其特征在于,所述后台控制模块包括处理输入信息单元、文件操作单元、进程操作单元以及驱动调用和解码输出单元,所述处理输入信息单元处理中间件接收到的用户输入的信息,根据输入的信息,进行相应的文件操作及进程操作,所述进程操作单元与所述驱动调用和解码输出单元之间通过管道进行通讯连接,所述驱动调用和解码输出单元驱动调用程序对多媒体信息进行解码及输出。
4.一种嵌入式多媒体播放方法,其特征在于,包括以下步骤 用户通过基于HTML、CSS及JavaScript语言的图形用户界面输入信息; 基于Qt/Embedded的中间件提供接口接收用户输入的信息; 基于C语言对用户输入的信息进行处理,并进行相应的文件及进程操作,调用驱动进行解码播放。
全文摘要
本发明实施例公开了一种嵌入式多媒体播放系统,包括前台界面、中间件及后台控制模块,前台界面为基于HTML、CSS及JavaScript语言的图形用户界面;中间件基于Qt/Embedded,用于提供接口支持显示输出,并与后台控制模块连接;后台控制模块采用标准C语言,用户从图形用户界面输入信息,中间件通过接口接收用户输入的信息,后台控制模块处理输入的信息并进行相应的操作,调用驱动进行解码播放。通过把Qt/Embedded作为中间件,把图形用户界面和后台控制模块从Qt/Embedded框架中分离,提供了互相访问的接口,使用C语言实现后台控制,降低了前后台模块的耦合度,提高了系统的容错能力和稳定性,提高了资源的使用效率。本发明同时公开了一种容错性及稳定性高的嵌入式多媒体播放方法。
文档编号G06F9/44GK102681846SQ20121012704
公开日2012年9月19日 申请日期2012年4月26日 优先权日2012年4月26日
发明者傅明, 孟思明, 李飞燕, 罗笑南, 陈子琦 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1