音频文件的读取方法和读取装置的制作方法

文档序号:6558672阅读:234来源:国知局
专利名称:音频文件的读取方法和读取装置的制作方法
技术领域
本发明涉及智能设备的音频处理技术,尤其涉及一种音频文件的读取方法和读取装置。
背景技术
目前的智能设备,例如计算机、手机、个人数字处理器(PDA),通常都安装有各种应用处理程序,例如供娱乐的游戏程序,这些程序在处理过程中可能需要播放声音。声音数据一般存储在音频文件中,该音频文件是指某类二进制文件,保存的内容是声音数据。根据需要,音频文件保存时的格式会有不同,例如有些场合需要存储空间占用少的文件格式,而有些场合需要音质较好的文件格式,目前已经有许多成熟的音频文件格式,例如wav、mp3、midi、ogg等。其中Wav格式的文件尺寸大,音质好,适用于比较短的音效;midi文件尺寸非常小,一般只有wav的十分之一,但是音质较差;ogg文件由于进行了压缩,所以尺寸较小。在播放声音时需要读取音频文件,对不同格式类型的音频文件需要用不同的读取算法进行读取,读取算法和文件类型需一一对应。
目前的一种读取音频文件的方法为在智能设备的处理程序中只编写某种特定类型的音频读取算法,在设计处理程序的过程中,如果需要播放声音,则将对应的音频文件存储成该特定的音频格式,例如wav,或者在使用所述处理程序前将其他格式的音频文件转换成所述特定的格式。这种处理方式的缺点为由于限制只能使用某一种音频文件格式,而不同的音频格式有自身的优缺点,适合在不同场合使用,该处理方法因此缺乏灵活性。
为了克服上述缺点,目前又有一种读取音频文件的方法直接在处理程序中需要使用音频文件的位置编写所对应类型的读取算法,当需要支持一种新的音频格式时,修改上述位置的读取算法。该方法虽然具备一定的灵活性,但是,增加了处理程序的复杂度,且以后的修改维护工作量也很大,成本较高,且容易出现错误,不符合模块化。

发明内容
有鉴于此,本发明的主要目的在于提供一种音频文件的读取方法,在灵活读取音频文件的同时,降低处理程序的复杂度和成本。
本发明的另一目的在于提供一种音频文件的读取装置,同样可以在灵活读取音频文件的同时,降低处理程序的复杂度和成本。
为了实现上述发明目的,本发明的主要技术方案为一种音频文件的读取装置,该装置包括至少一个读取模块,用于存储特定格式类型音频文件的读取算法;读取模块配置单元,用于配置所述读取模块的存储地址;读取管理器,与所述读取模块和读取模块配置单元相对独立设置,用于在启动后从读取模块配置单元获取所有读取模块的地址并加载所述读取模块,利用所加载的读取模块中的读取算法读取对应格式类型的音频文件。
优选的,所述读取管理器设置在需读取音频文件的处理单元中;所述读取模块和读取模块配置单元设置在所述处理单元外。
优选的,所述处理单元在启动时触发所述读取管理器启动,从读取模块配置单元获取读取模块的地址并加载所述读取模块;所述处理单元在结束处理时触发所述读取管理器释放所加载的读取模块。
优选的,所述处理单元在使用音频文件时将音频文件的类型和地址发送给所述读取管理器,读取管理器在判定所加载的读取模块中存在支持所述格式类型的读取算法的情况下,利用所加载读取模块中的读取算法从所述的地址读取该音频文件。
优选的,所述一种读取模块中对应存储一种格式类型的读取算法。
一种音频文件的读取方法,该方法包括A、存储至少一种格式类型的音频文件的读取算法;B、将读取算法的存储地址配置在配置文件中;C、从所述配置文件中获取所述读取算法的存储地址并加载所述读取算法,利用所加载的读取算法读取对应格式类型的音频文件。
优选地,该方法适用于需读取音频文件的智能设备处理程序;所述步骤A和步骤B独立于所述处理程序执行;所述步骤C在所述处理程序的运行过程中执行。
优选地,所述从配置文件中获取读取算法的存储地址并加载所述读取算法的操作在所述处理程序启动时执行;当所述处理程序结束时,进一步释放所加载的读取算法。
优选地,所述步骤C中利用所加载的读取算法读取对应格式类型的音频文件的具体方式为C1、所述处理程序在需要读取音频文件时提供该音频文件的格式类型和地址信息;C2、如果所加载的读取算法中存在支持所述格式类型的读取算法,则调用该读取算法从所述音频文件的地址处读取该音频文件。
优选地,在配置文件中按照使用频率优先配置使用频率高的读取算法的地址。
本发明中的配置单元以及包括读取算法的读取模块设置在所述智能设备的处理单元(即处理程序)外,在处理程序启动后将所述读取算法进行加载,利用加载的读取算法读取对应类型的音频文件。这样,用户在不修改处理程序的前提下,可以任意扩展或删减不同音频类型对应的读取算法(读取模块),只需在对应的配置文件中相应地增加或删除对应读取模块的地址即可。当处理程序启动后,即可将经过增加或删减处理后的各个读取算法(读取模块)加载,从而非常灵活地动态支持多种类型的音频文件;由于在编写智能设备的处理程序时不固定添加读取算法,而是直接根据加载的算法读取音频文件,且不必对处理程序进行后期的修改和维护,因此降低了游戏处理程序的复杂度,降低程序编写和维护的工作量,成本较低。


图1为本发明所述音频文件读取装置的结构图;图2为所述读取管理器启动时加载读取模块的流程图;图3为本发明所述方法的流程图。
具体实施例方式
下面通过具体实施例和附图对本发明做进一步详细说明。
本发明所述的智能设备包括计算机、手机、PDA等,本发明所适用的处理程序为需读取音频文件进行放音的处理程序,例如电子游戏的主处理程序等等。本文的实施例以本发明应用在智能设备的游戏程序中为例对本发明进行说明。
图1为本发明所述音频文件读取装置的结构图。参见图1,所述游戏主处理单元即游戏的主程序,主要用于实现游戏逻辑、显示游戏场景等功能,该游戏主处理单元会使用各种格式的音频文件。本发明所述的音频文件读取装置包括读取模块配置单元、读取管理器、以及至少一个读取模块。其中所述读取管理器设置在游戏处理单元中,与所述游戏主处理单元相同,属于游戏处理单元的一部分。所述读取模块和读取配置单元则独立设置在所述游戏处理单元外。
读取模块用于存储音频文件的读取算法。例如此实施例中包括wav读取模块(存储有wav读取算法)、mp3读取模块(对应存储有mp3读取算法)、以及midi读取模块(对应存储有midi读取算法)三个存储有不同格式类型读取算法的读取模块。所述一种读取模块中对应存储一种格式类型的读取算法。本发明侧重在如何动态支持多种音频格式类型,对于某种具体格式的读取算法不再介绍。
读取模块配置单元用于配置所述读取模块的存储地址。本实施例中该读取模块配置单元为一配置文件,该配置文件是开放的,可以根据读取模块的增减而修改其中的配置地址。本实施例的读取模块配置文件使用xml格式,其中的配置内容举例如下<?xml version=″1.0″?>
<ImgLoader Number=″3″>
<Loader ExtName=″wav″Dll=″WavLoader.dll″Describe=″加载wav文件″/>
<Loader ExtName=″mp3″Dll=″Mp3Loader.dll″Describe=″加载mp3文件″/>
<Loader ExtName=″midi″Dll=″MidiLoader.dll″Describe=″加载midi文件″/>
</ImgLoader>
其中,该文件描述了图1所示的结构图中一共三种音频文件读取算法的地址信息,即“wav”格式对应的读取模块的地址是“WavLoader.dll”;“mp3”格式对应的读取模块的地址是“Mp3Loader.dll”;“midi”格式对应的读取模块的地址是“MidiLoader.dll”。
在配置文件中,将经常使用的读取模块的地址放在配置文件前部分,即按照使用频率优先配置使用频率高的读取算法的地址,这样可以减少搜索的时间,从而实现动态优化。
所述读取管理器负责管理每种音频文件格式的具体读取模块,与所述读取模块和读取模块配置单元相对独立设置,可以设置在游戏处理程序中,当游戏主处理程序需要装载音频文件时,则调用该读取管理器来实现读取音频文件。读取管理器从所述配置文件获取读取模块的地址并加载所述读取模块,它通过从配置文件中一个接一个地获取读取模块的地址,获知当前有哪些“读取模块”可用。
图2为所述读取管理器启动时加载读取模块的流程图。参见图2,该流程包括步骤201、游戏主处理单元启动时触发读取管理器启动,读取管理器启动时,先从所述配置文件中顺序读取所述读取模块的地址信息。
步骤202、根据所读取的地址加载对应格式的读取模块,具体地,可以将读取模块的内容加载到本读取管理器的缓存区域。
步骤203、判断是否加载完所述配置文件中所示的所有的读取模块,是则结束所述读取管理器的启动过程;否则,执行步骤204。
步骤204、根据下一个地址加载下一个读取模块,返回步骤203。
所述游戏主处理单元可在启动时触发所述读取管理器从读取模块配置单元获取读取模块的地址并加载所述读取模块到缓冲区域;当所述游戏主处理单元在结束处理时,还会触发所述读取管理器释放所述缓存区域中所加载的读取模块信息。
在加载完所述读取模块后,所述读取管理器利用所加载的读取模块中的读取算法读取对应格式类型的音频文件,具体为所述游戏主处理单元在使用音频文件时将音频文件的类型和地址信息发送给所述读取管理器(一般地所述类型和地址信息包括在音频文件的路径文件名中,读取管理器可以根据路径文件名获知该音频文件的类型和地址,例如输出该音频文件的路径和文件名d//music1.mp3,则表示该文件为mp3类型,且地址信息为d//music1.mp3),读取管理器判断所加载的读取模块中是否存在一个读取模块可支持所述格式类型,如果是,则利用该读取模块中的读取算法从所述的地址读取该音频文件,之后可将读取的音频内容信息返回给游戏主处理单元;否则,判定读取失败。
本发明中的配置单元以及包括读取算法的读取模块设置在所述智能设备的处理单元(即处理程序)外,读取模块通过读取管理器与“游戏主处理程序”进行信息交互,从而实现音频文件的自动识别。而所述读取管理器与所述游戏主处理程序设置在游戏的处理单元中。这样,用户在不修改游戏处理程序的前提下,可以任意扩展或删减不同音频类型对应的读取模块,只需在读取模块配置文件中相应地增加或删除对应读取模块的地址即可。当读取管理器启动时,即可将经过增加或删减处理后的各个读取模块加载,从而非常灵活地动态支持多种类型的音频文件;由于在游戏处理程序中不固定添加读取算法,且不必对游戏处理程序进行后期的修改和维护,因此降低了游戏处理程序的复杂度,降低程序编写和维护的工作量,成本较低。
例如,当增加对一种新的音频文件格式(以“ogg”音频格式为例)的支持时,可加入包括该种格式类型读取算法的读取模块,并在所述配置文件中加入一项信息<Loader ExtName=″ogg″Dll=″OggLoader.dll″Describe=″加载ogg文件″/>
该项信息中描述了当遇见ogg为扩展名时,使用地址为“OggLoader.dll”的这个模块来读取。
这样所述读取管理器可以加载支持ogg类型的读取算法,并在游戏主处理程序需要读取ogg音频文件时采用该算法进行读取。
图3为本发明所述方法的流程图。参见图3,本发明的核心技术方案包括步骤301、存储至少一种格式类型的音频文件的读取算法。
步骤302、将读取算法的存储地址配置在配置文件中。
所述步骤301和步骤302独立于所述游戏处理程序执行。
步骤303、从所述配置文件中获取所述读取算法的存储地址并加载所述读取算法,利用所加载的读取算法读取对应格式类型的音频文件。
本步骤303在所述游戏处理程序的运行过程中执行。其中,所述从配置文件中获取读取算法的存储地址并加载所述读取算法的操作在所述游戏处理程序启动时执行,将所述读取算法加载在智能设备的缓冲区内;当所述游戏处理程序结束时,进一步从所述缓冲区中释放所加载的读取算法。
在步骤303中,当所述游戏主处理程序在需要读取某音频文件时则将该音频文件的格式类型和地址信息传递给所述读取管理器,例如传递该音频文件的路径和文件名d//music1.mp3,则表示该文件为mp3类型,且地址信息为d//music1.mp3;接着所述读取管理器判断所加载的读取算法中是否存在支持所述格式类型(例如mp3)的读取算法,是则调用该读取算法从所述音频文件的地址处读取该音频文件,否则,读取失败。
另外,作为一种优选方案,在步骤302中,可按照使用频率优先配置使用频率高的读取算法的地址,即将经常使用的读取算法放在配置文件的优先位置,这样可以减少搜索时间,实现动态优化。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1.一种音频文件的读取装置,其特征在于,该装置包括至少一个读取模块,用于存储特定格式类型音频文件的读取算法;读取模块配置单元,用于配置所述读取模块的存储地址;读取管理器,与所述读取模块和读取模块配置单元相对独立设置,用于在启动后从读取模块配置单元获取所有读取模块的地址并加载所述读取模块,利用所加载的读取模块中的读取算法读取对应格式类型的音频文件。
2.根据权利要求1所述的装置,其特征在于,所述读取管理器设置在需读取音频文件的处理单元中;所述读取模块和读取模块配置单元设置在所述处理单元外。
3.根据权利要求2所述的装置,其特征在于,所述处理单元在启动时触发所述读取管理器启动,从读取模块配置单元获取读取模块的地址并加载所述读取模块;所述处理单元在结束处理时触发所述读取管理器释放所加载的读取模块。
4.根据权利要求2所述的装置,其特征在于,所述处理单元在使用音频文件时将音频文件的类型和地址发送给所述读取管理器,读取管理器在判定所加载的读取模块中存在支持所述格式类型的读取算法的情况下,利用所加载读取模块中的读取算法从所述的地址读取该音频文件。
5.根据权利要求1至4任一项所述的装置,其特征在于,所述一种读取模块中对应存储一种格式类型的读取算法。
6.一种音频文件的读取方法,其特征在于,该方法包括A、存储至少一种格式类型的音频文件的读取算法;B、将读取算法的存储地址配置在配置文件中;C、从所述配置文件中获取所述读取算法的存储地址并加载所述读取算法,利用所加载的读取算法读取对应格式类型的音频文件。
7.根据权利要求6所述的方法,其特征在于,该方法适用于需读取音频文件的智能设备处理程序;所述步骤A和步骤B独立于所述处理程序执行;所述步骤C在所述处理程序的运行过程中执行。
8.根据权利要求7所述的方法,其特征在于,所述从配置文件中获取读取算法的存储地址并加载所述读取算法的操作在所述处理程序启动时执行;当所述处理程序结束时,进一步释放所加载的读取算法。
9.根据权利要求7所述的方法,其特征在于,所述步骤C中利用所加载的读取算法读取对应格式类型的音频文件的具体方式为C1、所述处理程序在需要读取音频文件时提供该音频文件的格式类型和地址信息;C2、如果所加载的读取算法中存在支持所述格式类型的读取算法,则调用该读取算法从所述音频文件的地址处读取该音频文件。
10.根据权利要求6所述的方法,其特征在于,在配置文件中按照使用频率优先配置使用频率高的读取算法的地址。
全文摘要
本发明公开了一种音频文件的读取装置和方法,装置包括至少一个存储音频文件读取算法的读取模块,用于配置读取模块存储地址信息的读取模块配置单元,以及用于启动后从读取模块配置单元获取读取模块的地址并加载所述读取模块、并利用所加载的读取模块中的读取算法读取对应格式类型的音频文件的读取管理器。方法包括A、存储至少一种所述读取算法;B、将读取算法的存储地址配置在配置文件中;C、从所述配置文件中获取所述读取算法的存储地址并加载所述读取算法,利用所加载的读取算法读取对应格式类型的音频文件。本发明可以在灵活读取音频文件的同时,降低应用处理程序的复杂度和成本。
文档编号G06F9/46GK101075187SQ200610081329
公开日2007年11月21日 申请日期2006年5月18日 优先权日2006年5月18日
发明者徐成龙 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1