[发明专利]一种音频驱动程序声音管理方法有效
申请号: | 200610126818.3 | 申请日: | 2006-09-05 |
公开(公告)号: | CN101140527A | 公开(公告)日: | 2008-03-12 |
发明(设计)人: | 刘亮 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 许志勇;颜涛 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 音频 驱动程序 声音 管理 方法 | ||
技术领域
本发明涉及一种嵌入式操作系统的声音管理方法,尤其涉及一种无线移动终端中音频驱动程序的声音管理方法。
背景技术
目前,手机、PDA终端上的最典型嵌入式操作系统是Linux和WinCE。以Linux为例,一般应用程序播放声音,通常调用Linux操作系统中open()、ioctl()、write()、read()、close()等声音接口函数,由音频驱动程序操作音频设备完成具体播放。
音频驱动程序被应用程序调用时,可以在内存中创建DMA数据缓冲区,如图1,包括若干缓冲单元。现有音频驱动程序的播放声音方法,如图2,包括:210)开始;220)判断DMA数据缓冲区是否有声音数据;是,转入步骤230);否,进入下一步;221)等待数据,返回步骤220);230)播放该声音数据;240)结束。为避免控制冲突,该音频驱动程序对应的open()接口函数,具体如图3,包括:310)开始;320)判断该音频设备是否空闲?是,进入下一步;否,转入步骤331);330)设置该音频设备被占用,返回成功;转入步骤340);331)阻塞或返回出错;340)结束。因此,这种音频驱动程序不能被多个应用程序同时调用、控制,这使得:①简单的音频设备不允许被多个应用程序同时使用、播放各自声音,后一应用程序只有等前一应用程序使用、关闭完音频设备后才能使用;②虽然允许同时播放和录音,但是不支持播放和录音采取不同的采样率,即正在播放的应用程序和正在录音的应用程序是互相影响的,比如,正在播放的程序设置采样率为44100,此时如果录音程序将采样率设置成了8000,则我们听到的声音会变成很低沉的慢声,变调了。
典型的手机、PDA终端,用户使用时会有众多场景,比如来电、打电话中、MP3播放中、来短消息、响闹铃中等等。这些场景可能并发,因此手机软件开发时,必然遇到如来电铃音、按键音、闹铃音、短消息提示音、MP3音乐等等各种声音需要播放,而且这些声音又有各自特点:①来电铃音,实时、优先级最高,不论当时在做什么,只要有来电,就必须马上播铃音提示,并且不能被中间打断;②按键音的特点是经常要与其它声音同时播放,不论是否正在播放其它声音,一按键,就应该有声音提示;③MP3音乐的特点是播放时间一般很长,在播放期间,可能发生其它很多事情,有很多其它声音需要播放,一般来说,MP3音乐此时应该暂停。因此,必须能够优先播放和同时播放。
上述问题可以这样解决:①增加声卡硬件设备,多个应用程序同时打开不同的声卡,但这样增加手机终端成本;②采用混音技术,将所有要播放的声音进行混音,这就可以解决不能同时播放的问题和播放录音互相影响的问题;目前的PC上办法就是使用一个单独的服务程序,负责对声卡设备进行管理,对各种声音进行有优先级的排队,优先级高的声音先播放。对声卡的操作都交由此服务程序完成,其它任何应用不应该自己操作声卡,其它应用只能通过向服务程序发消息的方法通知服务程序执行相应的操作。不过这种方法应用到手机、PDA等终端的嵌入式操作系统有两个明显缺点:(一)该服务程序实现复杂,要考虑多种情况:简单的铃音,可以直接使用文件名做消息参数,由服务程序调用codec解压,直接操作声卡播放;MP3音乐,由于MP3播放器已经调用codec解压了,因此服务程序只须将解开的数据直接写到声卡播放,但是需要考虑数据如何从媒体播放器传递到服务程序是个问题,由于是两个不同的进程并且需要传输的数据量又非常大,这样就需要复杂的进程间通讯和同步机制以及进程间大量数据传输机制;(二)该方法不便于移植现有的其它手机程序,由于现有的其它手机程序都是直接操作声卡播放声音的,因此会与该系统冲突,给移植带来很大的麻烦。
发明内容
本发明需要解决的技术问题是,如何提供一种音频驱动程序声音管理方法,在它的基础上可以实现声音按优先级播放,同时可以避免复杂的进程间通讯和同步机制以及进程间大量数据传输机制,适合于简单的无线移动终端或智能终端;进一步还可实现多种声音的同时播放;进一步还可解决程序移植问题。
本发明技术问题这样解决,提供一种音频驱动程序声音管理方法,采用播放缓冲区,其特征在于,包括以下并行步骤:
A)创建一播放列表,利用所述播放列表实时记录各应用程序控制写入的各种当前声音数据及其优先级;
B)按所述优先级从高到低的顺序将对应的所述声音数据移动至所述播放缓冲区。
C)通过所述播放缓冲区给音频设备传送声音数据
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610126818.3/2.html,转载请声明来源钻瓜专利网。