嵌入式设备的音频管理装置及方法制造方法及图纸

技术编号:2825043 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式设备的音频管理装置及方法,该方法包括以下步骤:步骤一,同步模块在虚拟音频驱动模块与音频驱动模块之间建立同步机制;步骤二,在第三方对虚拟音频驱动模块进行操作时,同步模块根据音频驱动模块的工作状态并利用同步机制来控制虚拟音频驱动模块的运行,以由虚拟音频驱动模块和音频驱动模块分时驱动声卡工作。本发明专利技术避免了系统音频管理上的冲突。

【技术实现步骤摘要】

本专利技术涉及一种在嵌入式设备(比如手机)上实现便于第三方程序移植的音频管理的技术。
技术介绍
目前运行在手机终端上的最典型的操作系统是Linux和WinCE。以Linux为例,一般应用是与操作系统进行交互,这些应用都是通过操作系统提供的接口(比如驱动程序接口)进行操作。例如,应用程序要播放声音,就要与声卡(音频,下同)驱动程序交互,一般要通过调用open()、ioctl()、write()、read()、close()等函数来操作声卡。普通的系统音频结构,如图1所示。简单的嵌入式系统与功能强大的PC机有很大的区别,比如,简单的声卡设备,不允许多个应用同时打开声卡,同时播放声音,也就是说如果一个应用正在使用声卡,则另外的应用就无法使用声卡,只有等待前一个应用使用完将声卡关闭后才能使用。这个问题不是不能解决,比如,不允许多个应用同时打开声卡,是因为声卡设备只有一个,如果增加声卡硬件设备,就可以解决这个问题,不过这样会导致成本的增加,因此一般很少使用。另外手机上的音频管理有其独有的特点:一个典型的手机终端,用户使用时会有许多场景,比如来电、打电话中、MP3播放中、接收短消息、响闹铃中等等。这些场景,-->可能单独发生,也有可能同时发生,比如正在播放MP3,此时闹铃响了,或者来电话了,又或者来短消息了等等,因此手机软件开发时,必然要考虑到如来电铃音、按键音、闹铃音、短消息提示音、MP3音乐等等各种声音需要播放。但是这些声音又有各不相同的特点,比如,来电铃音,可以说是实时的,优先级最高的,不论当时在做什么,只要有来电,就必须马上播铃音提示,并且不能中间打断;而按键音的特点是优先级比较低,一般正在播放其它声音的时候,可以不播按键音;MP3音乐的特点是播放时间一般很长,在播放期间,可能发生其它很多事情,有很多其它声音需要播放,一般来说,MP3音乐此时应该暂停。许多场景并发时就会遇到我们前面说的问题:一个应用正在使用声卡,会使后面所有的应用都无法及时使用声卡。解决该问题的办法有很多,如:可以使用一个单独的服务程序,负责对声卡设备进行管理,对各种声音进行有优先级的排队,优先级高的声音先播放。该服务程序,可以放在应用层,如图2中的音频管理模块,对声卡的操作都由此服务程序完成,其它任何应用不应该自己操作声卡,其它应用只能通过向服务程序发消息的方法通知服务程序执行相应的操作。不过这种方法也有缺点,一是此服务程序实现复杂,要考虑多种情况,比如,对简单的铃音,可以直接使用文件名做消息参数,由服务程序自己调用codec(编解码器)解压,由其操作声卡播放;对于MP3音乐,由于一般MP3播放器自己就已经调用codec将数据解压了,因此服务程序只须将解开的数据直接写到声卡播放就行了,但是这个数据如何从媒体播放器传递到服务程序也存在问题,毕竟这是两个不同的进程,需要传输的数据量又非常大,这样需要复杂的进程间通讯和同步机制、进程间大量数据传输机制;二是这个方法不便于移植其它程序到系统,原因很简单,比如要移植一个游戏到系统,由于所有的游戏都是直接操作声卡播放声音的,因此显然-->是与系统冲突的,这给移植带来很大的麻烦;有第三方移植程序的时候,如果把第三方程序也当成普通应用,则系统结构图仍旧如图2所示,但是这个方案显然要对第三方程序做大的修改;如果让第三方程序直接访问驱动程序,则系统结构图如图3所示,这种方案显然会导致音频管理冲突。也可以将这些复杂的音频管理逻辑全部写入音频驱动程序,尽量保证驱动程序的接口不做变化,如图4所示。这种方法的优点在于第三方程序的移植方便了,但它具有下列明显缺点:一是对音频驱动要进行很大的改动,这是系统不稳定的重要因素;二是将不应该由驱动做的事情,做到了驱动里,导致整个系统结构不清晰,逻辑混乱,驱动和上层应用严重相互依赖,不利于移植和扩展,不利于独立发展。因此,需要一种嵌入式设备的音频管理的解决方案,能够解决上述相关技术中的问题。
技术实现思路
本专利技术的目的是提出一种使用伪驱动方便手机等设备上第三方程序移植的音频管理的方案,即通过在驱动程序里做一个虚的音频设备,来避免第三方程序由于直接操作声卡而导致系统音频管理冲突。根据本专利技术的一个方面,提供了一种嵌入式设备的音频管理装置,包括用于驱动声卡工作的音频驱动模块,该音频管理装置还包括:虚拟音频驱动模块,用于在同步模块的控制下响应于第三方的操作来驱动声卡工作;以及同步模块,用于根据音频驱动模块的工作状态来控制虚拟音频驱动模块的运行。-->在音频驱动模块在虚拟音频驱动模块运行的情况下开始运行时,同步模块阻塞虚拟音频驱动模块运行。在音频驱动模块开始工作而虚拟音频驱动模块未工作时,同步模块禁止虚拟音频驱动模块运行。在音频驱动模块停止运行时,同步模块允许虚拟音频驱动模块运行。根据本专利技术的另一个方面,提供了一种嵌入式设备的音频管理方法,包括以下步骤:步骤一,同步模块在虚拟音频驱动模块与音频驱动模块之间建立同步机制;步骤二,在第三方对虚拟音频驱动模块进行操作时,同步模块根据音频驱动模块的工作状态并利用同步机制来控制虚拟音频驱动模块的运行。步骤二包括以下步骤:在音频驱动模块在虚拟音频驱动模块运行的情况下开始运行时,同步模块利用同步机制阻塞虚拟音频驱动模块;以及步骤二进一步包括以下步骤:同步模块利用同步机制阻塞虚拟音频驱动模块后,虚拟音频驱动模块暂停运行;以及在音频驱动模块停止运行时,同步模块利用同步机制使虚拟音频驱动模块从暂停位置处继续运行,以由虚拟音频驱动模块和音频驱动模块分时驱动声卡工作。步骤二包括以下步骤:在音频驱动模块和虚拟音频驱动模块均处于未运行状态时,同步模块利用同步机制允许虚拟音频驱动模块运行;以及步骤二进一步包括以下步骤:在音频驱动模块开始运行时,同步模块利用同步机制禁止虚拟音频驱动模块运行。本专利技术通过使第三方程序直接操作虚拟音频设备,而不是直接操作真实的音频设备,来通过真实设备和虚拟设备之间的同步等一-->些手段,避免了系统音频管理上的冲突,比如,避免一个程序占着音频设备不放,别的程序就无法使用音频设备。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是示出通常系统的音频架构示意图;图2是示出现有技术中的将音频管理模块放在应用层的音频架构示意图;图3是示出现有技术中的将音频管理模块放在驱动层的音频架构示意图;图4是示出现有技术中的将音频管理模块放在应用层以及第三方程序直接访问驱动的音频架构示意图;图5是示出根据本专利技术实施例的嵌入式设备的音频管理装置的框图;图6是示出根据本专利技术实施例的嵌入式设备的音频管理方法的流程图;图7是示出根据本专利技术一个实施例的音频管理装置的框图;-->图8是示出现有技术中的在音频驱动中播放函数的流程图;图9是示出根据本专利技术实施例的在音频驱动中播放函数的流程图;图10是示出现有技术中的在音频驱动中关闭函数的流程图;图11是示出根据本本文档来自技高网
...

【技术保护点】
一种嵌入式设备的音频管理装置,包括用于驱动声卡工作的音频驱动模块,其特征在于,所述音频管理装置还包括:虚拟音频驱动模块,用于在同步模块的控制下响应第三方的操作来驱动所述声卡工作;以及所述同步模块,用于根据所述音频驱动模块的工作状态来控制所述虚拟音频驱动模块的运行。

【技术特征摘要】
1.一种嵌入式设备的音频管理装置,包括用于驱动声卡工作的音频驱动模块,其特征在于,所述音频管理装置还包括:虚拟音频驱动模块,用于在同步模块的控制下响应第三方的操作来驱动所述声卡工作;以及所述同步模块,用于根据所述音频驱动模块的工作状态来控制所述虚拟音频驱动模块的运行。2.根据权利要求1所述的音频管理装置,其特征在于,在所述音频驱动模块在所述虚拟音频驱动模块运行的情况下开始运行时,所述同步模块阻塞所述虚拟音频驱动模块运行。3.根据权利要求1所述的音频管理装置,其特征在于,在所述音频驱动模块开始工作而所述虚拟音频驱动模块未工作时,所述同步模块禁止所述虚拟音频驱动模块运行。4.根据权利要求3所述的音频管理装置,其特征在于,在所述音频驱动模块停止运行时,所述同步模块允许所述虚拟音频驱动模块运行。5.一种用于前述任一权利要求所述的音频管理装置的音频管理方法,其特征在于,包括以下步骤:步骤一,同步模块在虚拟音频驱动模块与音频驱动模块之间建立同步机制;步骤二,在第三方对所述虚拟音频驱动模块进行操作时,所述同步模块根据所述音频驱动模块的工作状态并利用所述同步机制来控制所述虚...

【专利技术属性】
技术研发人员:刘亮
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1