一种音频文件加载方法技术

技术编号:18710018 阅读:25 留言:0更新日期:2018-08-21 22:33
本发明专利技术提供音频文件加载方法,通过将音频文件信息缓存单元等分为若干个功能缓存区,根据功能缓存区的容量将音频文件的总数目分割为块,生成存储节点列表,并根据存储节点列表刷新各缓存区,然后根据接收的音频文件信息来刷新缓存区,实现了动态调整缓存区,利用相对少的RAM空间,达到读取不限数目的音频文件信息。

An audio file loading method

The invention provides an audio file loading method by dividing the audio file information caching unit into several functional caching areas, dividing the total number of audio files into blocks according to the capacity of the functional caching area, generating a list of storage nodes, and refreshing each cache area according to the list of storage nodes, and then according to the received audio files. The information refreshes the cache, realizes the dynamic adjustment of the cache, and uses relatively little RAM space to read an unlimited number of audio file information.

【技术实现步骤摘要】
一种音频文件加载方法
本专利技术涉及音频文件管理
,尤其涉及一种音频文件加载方法。
技术介绍
一般的电子播放装置都具有ROM、RAM,ROM用来存储系统程序以及音乐、电影、电子书等用户资料,RAM则是电子播放装置的运行内存,用于临时存储数据,通常来说,RAM容量大,就能同时运行更多的应用程序。然而,由于成本的考虑,电子播放装置的RAM容量是非常有限的,而且还要分配绝大部分容量用于运行更为基础重要的程序,因此分配用于缓存音频文件信息的容量就非常有限了。由于车机的RAM容量十分有限,目前车载多媒体播放装置在扫描歌曲时采用一次性读取,这样做的好处是下次播放无需再扫描和调整播放列表,但是采用这种方法从存储器中读取的歌曲数目是固定有限的,无法读取超出这个数目的歌曲文件。因此,现有技术有待进一步改进。
技术实现思路
本专利技术提供一种音频文件加载方法,旨在解决现有技术中的缺陷,实现动态调整缓存区,利用相对少的RAM空间,达到读取不限数目的音频文件信息。为达到上述目的,本专利技术所采取的技术方案为:本专利技术提供一种音频文件加载方法,包括:S1、设置音频文件信息缓存单元的总长度;S2、将所述音频文件信息缓存单元等分为若干个功能缓存区,所述功能缓存区包括最前端的前置缓存区、位于前置缓存区之后的前列表缓存区、最后端的后置缓存区、位于后置缓存区之前的后列表缓存区,以及位于前列表缓存区和后列表缓存区之间的播放缓存区;S3、扫描存储器中的所有文件,获取音频文件的总数目;S4、根据单个功能缓存区的容量将音频文件的总数目分割为块,将每块的第一个音频文件作为存储节点,生成存储节点列表;S5、判断上次是否有播放记录,是则获取该播放记录对应的存储节点,根据所述存储节点刷新各缓存区,否则根据第一个存储节点刷新各缓存区;S6、接收当前输入的音频文件信息;S7、判断所述当前输入的音频文件信息是否在播放缓存区里,是则不刷新缓存区,否则进入下一步;S8、确定本次缓存区的刷新方向,若本次缓存区的刷新方向与上一次缓存区的刷新方向相同,则等待上一次缓存区的刷新完成后才能继续执行本次缓存区的刷新,否则直接执行本次缓存区的刷新。具体地,所述根据所述存储节点刷新各缓存区,包括:将存储节点n及存储节点n+1之间的音频文件信息存入播放缓存区;将存储节点n+1及存储节点n+2之间的音频文件信息存入后列表缓存区;将存储节点n+2及存储节点n+3之间的音频文件信息存入后置缓存区;若n≥2,则将存储节点n-1及存储节点n之间的音频文件信息存入前列表缓存区,否则前列表缓存区为空;若n≥3,将存储节点n-2及存储节点n-1之间的音频文件信息存入前置缓存区,否则前列表缓存区为空。具体地,所述根据第一个存储节点刷新各缓存区,包括:将存储节点1及存储节点2之间的音频文件信息存入播放缓存区;将存储节点2及存储节点3之间的音频文件信息存入后列表缓存区;将存储节点3及存储节点4之间的音频文件信息存入后置缓存区;前置缓存区、前列表缓存区为空。具体地,所述确定本次缓存区的刷新方向,若本次缓存区的刷新方向与上一次缓存区的刷新方向相同,则等待上一次缓存区的刷新完成后才能继续执行本次缓存区的刷新,否则直接执行本次缓存区的刷新,包括:如果本次缓存区的刷新方向是向前,则判断上次刷新缓存区的方向是否一致,是则等待上一次刷新完成,然后将所有缓存区向前移动一个,并刷新新前置缓存区,否则停止上次缓存区刷新,将所有缓存区向前移动一个,并刷新前置缓存区;如果本次缓存区的刷新方向是向后,则判断上次刷新缓存区的方向是否一致,是则等待上一次刷新完成,然后将所有缓存区向后移动一个,并刷新后置缓存区,否则停止上次缓存区刷新,将所有缓存区向后移动一个,并刷新后置缓存区。具体地,所述刷新缓存区包括:步骤a、根据当前正在播放的音频文件,找到对应存储节点所在的文件夹;步骤b、递归遍历后续音频文件和文件夹;步骤c、将遍历到的音频文件信息存入到各功能缓存区;步骤d、判断各功能缓存区是否已满,是则结束刷新,否则进入下一步;步骤e、判断当前目录下所有文件是否已遍历完毕,是则进入下一步,否则返回步骤b;步骤f、判断当前目录是否为根目录,是则结束刷新,否则进入下一个文件夹,并返回步骤b。具体地,所述前置缓存区、前列表缓存区、播放缓存区、后列表缓存区、后置缓存区的容量相等。本专利技术的有益效果在于:本专利技术通过将音频文件信息缓存单元等分为若干个功能缓存区,根据功能缓存区的容量将音频文件的总数目分割为块,生成存储节点列表,并根据存储节点列表刷新各缓存区,然后根据接收的音频文件信息来刷新缓存区,实现了动态调整缓存区,利用相对少的RAM空间,达到读取不限数目的音频文件信息。附图说明图1是本专利技术的音频文件加载方法的流程示意图;图2是本专利技术的音频文件信息缓存单元示意图。具体实施方式下面结合附图具体阐明本专利技术的实施方式,附图仅供参考和说明使用,不构成对本专利技术专利保护范围的限制。如图1所示,本专利技术的实施例提供一种音频文件加载方法,包括:步骤1、设置音频文件信息缓存单元的总长度。在本实施例中,将音频文件信息缓存单元总长度设置为可以存储500个音频文件信息。步骤2、将所述音频文件信息缓存单元等分为若干个功能缓存区,所述功能缓存区包括最前端的前置缓存区、位于前置缓存区之后的前列表缓存区、最后端的后置缓存区、位于后置缓存区之前的后列表缓存区,以及位于前列表缓存区和后列表缓存区之间的播放缓存区。图2是本专利技术的音频文件信息缓存单元示意图,TEMP_BUFF1为前置缓存区,位于最前端;TEMP_BUFF2为后置缓存区,位于最后端;位于前置缓存区TEMP_BUFF1、后置缓存区TEMP_BUFF2之间的BUFF1、BUFF2、BUFF3为列表显示区,只有该区域BUFF的歌曲信息可被音乐播放应用程序访问,其中BUFF1为前列表缓存区,BUFF3为后列表缓存区,BUFF2为播放缓存区,当播放歌曲超出播放缓存区,列表显示区将被刷新。在本实施例中,前置缓存区、前列表缓存区、播放缓存区、后列表缓存区、后置缓存区的容量相等,即可以存储100个音频文件信息。例如,当前的列表显示区如表1所示:表1BUFF1BUFF2BUFF31-100101-200201-300表1表示BUFF1存储第1至第100个音频文件信息,BUFF2存储第101至第200个音频文件信息,BUFF3存储第201至第300个音频文件信息。如果当前播放的是第150个音频文件,而当用户选择切换到播放第210个音频文件,由于第210个音频文件对应的音频文件信息在BUFF3里,超出了播放缓存区BUFF2的区域,列表就会刷新如表2所示:表2BUFF1BUFF2BUFF3101-200201-300301-400步骤3、扫描存储器中的所有文件,获取音频文件的总数目。存储器中的每个文件有相应的结构体用于存储该文件信息。通过文件系统遍历文件的API和读取文件信息的API即可获取存储器中音频文件的总数目。步骤4、根据单个功能缓存区的容量将音频文件的总数目分割为块,将每块的第一个音频文件作为存储节点,生成存储节点列表。例如,USB存储器中共有620个音频文件,单个功能缓存区的容量为100个音频文件信息,则将第1个音频文件作为第1个节点,将第本文档来自技高网...

【技术保护点】
1.一种音频文件加载方法,其特征在于,包括:S1、设置音频文件信息缓存单元的总长度;S2、将所述音频文件信息缓存单元等分为若干个功能缓存区,所述功能缓存区包括最前端的前置缓存区、位于前置缓存区之后的前列表缓存区、最后端的后置缓存区、位于后置缓存区之前的后列表缓存区,以及位于前列表缓存区和后列表缓存区之间的播放缓存区;S3、扫描存储器中的所有文件,获取音频文件的总数目;S4、根据单个功能缓存区的容量将音频文件的总数目分割为块,将每块的第一个音频文件作为存储节点,生成存储节点列表;S5、判断上次是否有播放记录,是则获取该播放记录对应的存储节点,根据所述存储节点刷新各缓存区,否则根据第一个存储节点刷新各缓存区;S6、接收当前输入的音频文件信息;S7、判断所述当前输入的音频文件信息是否在播放缓存区里,是则不刷新缓存区,否则进入下一步;S8、确定本次缓存区的刷新方向,若本次缓存区的刷新方向与上一次缓存区的刷新方向相同,则等待上一次缓存区的刷新完成后才能继续执行本次缓存区的刷新,否则直接执行本次缓存区的刷新。

【技术特征摘要】
1.一种音频文件加载方法,其特征在于,包括:S1、设置音频文件信息缓存单元的总长度;S2、将所述音频文件信息缓存单元等分为若干个功能缓存区,所述功能缓存区包括最前端的前置缓存区、位于前置缓存区之后的前列表缓存区、最后端的后置缓存区、位于后置缓存区之前的后列表缓存区,以及位于前列表缓存区和后列表缓存区之间的播放缓存区;S3、扫描存储器中的所有文件,获取音频文件的总数目;S4、根据单个功能缓存区的容量将音频文件的总数目分割为块,将每块的第一个音频文件作为存储节点,生成存储节点列表;S5、判断上次是否有播放记录,是则获取该播放记录对应的存储节点,根据所述存储节点刷新各缓存区,否则根据第一个存储节点刷新各缓存区;S6、接收当前输入的音频文件信息;S7、判断所述当前输入的音频文件信息是否在播放缓存区里,是则不刷新缓存区,否则进入下一步;S8、确定本次缓存区的刷新方向,若本次缓存区的刷新方向与上一次缓存区的刷新方向相同,则等待上一次缓存区的刷新完成后才能继续执行本次缓存区的刷新,否则直接执行本次缓存区的刷新。2.根据权利要求1所述的音频文件加载方法,其特征在于,所述根据所述存储节点刷新各缓存区,包括:将存储节点n及存储节点n+1之间的音频文件信息存入播放缓存区;将存储节点n+1及存储节点n+2之间的音频文件信息存入后列表缓存区;将存储节点n+2及存储节点n+3之间的音频文件信息存入后置缓存区;若n≥2,则将存储节点n-1及存储节点n之间的音频文件信息存入前列表缓存区,否则前列表缓存区为空;若n≥3,将存储节点n-2及存储节点n-1之间的音频文件信息存入前置缓存区,否则前列表缓存区为空。3.根据权利要求1所述的音频文件加载方法,其特征在于,所述根据第一个存...

【专利技术属性】
技术研发人员:陈浪惠毛伟陈勇
申请(专利权)人:惠州华阳通用电子有限公司
类型:发明
国别省市:广东,44

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

1