一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法技术

技术编号:17881018 阅读:69 留言:0更新日期:2018-05-06 02:16
本发明专利技术公开了一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,所述播放方法包括:蓝牙耳机的MCU读取建立于MCU里面的列表文件A并对比当前SD卡歌曲信息是否一致,若不一致,更新列表文件A;MCU读取列表文件A里的歌曲信息,加载歌曲信息到缓冲器里;MCU加载当前歌曲的信息,读取歌曲文件的数据;启动缓冲器,读取歌曲的数据,保存到缓冲器;一帧一帧地播放缓冲器内缓冲区内的数据,播放完成一帧,播放下一帧并产生回调信号,缓冲器读取歌曲的数据保存到缓冲器以保持缓冲区内至少有两帧数据直至当前歌曲播放完毕,其成本低,系统运行的效率高且保证了歌曲播放的流畅性。

A method of playing buffer MP3 music player embedded in Bluetooth headset

The invention discloses a method for playing a buffered MP3 music player embedded with a Bluetooth headset. The method includes: the MCU reading of the Bluetooth headset is set up in the list file A in the MCU and is consistent with the current SD card information, if not, update the list file A; MCU reads the song information in the list file A. Load the song information into the buffer; MCU loads the information of the current song, reads the data of the song file, starts the buffer, reads the data of the song, and saves it to the buffer; it plays the buffer within the buffer in one frame by frame, plays a frame, plays the next frame and generates a callback signal, and reads the buffer. The data of the song is saved to the buffer to keep at least two frames in the buffer until the current song is finished. The cost is low, the efficiency of the system is high and the fluency of the song play is guaranteed.

【技术实现步骤摘要】
一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法
本专利技术涉及电子设备,尤其涉及一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法。
技术介绍
目前市场上关于蓝牙耳机带MP3离线播放器的产品渐渐地出现,但由于MP3解码过程过于复杂,会消耗蓝牙耳机MCU大量的处理时间,所以大部分产品都会选择第三方开发的模块实现,但是这其中明显会出现一个缺点,就是额外添加多了一个MCU,这样会增加产品的功耗和成本。此外,由于蓝牙耳机MCU的处理能力有限,如直接移植MP3解码器到蓝牙耳机MCU实现播放整个功能的话,蓝牙耳机MCU工作起来也显得十分吃力。
技术实现思路
本专利技术的主要目的在于克服上述
技术介绍
的不足,提供一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,其成本低,系统运行的效率高且保证了歌曲播放的流畅性。上述目的是通过如下技术方案来实现的:一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,在蓝牙耳机的MCU固件里移植有FAT32文件系统的模块以及第三方开源的MP3解码器,所述播放方法包括:蓝牙耳机的MCU读取建立于MCU里面的列表文件A并对比当前SD卡歌曲信息是否一致,若不一致,更新列表文件A;MCU读取列表文件A里的歌曲信息,加载歌曲信息到缓冲器里;MCU加载当前歌曲的信息,读取歌曲文件的数据;启动缓冲器,读取歌曲的数据,保存到缓冲器;一帧一帧地播放缓冲器内缓冲区内的数据,播放完成一帧,播放下一帧并产生回调信号,缓冲器读取歌曲的数据保存到缓冲器以保持缓冲区内至少有两帧数据直至当前歌曲播放完毕。在一些实施方式中,首次将SD卡插入MCU时,MCU新建列表文件A并将所有MP3类型文件的路径和名字记录到列表文件A里。在一些实施方式中,当MCU加载当前歌曲的信息,读取歌曲文件的数据后,MCU判断缓冲区A是否空闲到一定程度的,若是,启动缓冲器,读取歌曲的数据,保存到缓冲器;若否,MCU判断缓冲器是否在启动,若是,启动缓冲器,读取歌曲的数据,保存到缓冲器。在一些实施方式中,启动缓冲器,读取歌曲的数据,保存到缓冲器后,MCU判断缓冲区A是否填充到一定程度的,若是,关闭缓冲器。在一些实施方式中,若MCU判断缓冲器不是在启动或者缓冲区A不是填充到一定程度的,MCU读取缓冲区A的一帧数据,判断数据是否为空,若是,设置标志位;若否,一帧数据进行解码。在一些实施方式中,一帧数据进行解码后,MCU判断缓冲区B是否有两帧数据,若否,重复MCU判断缓冲区A是否空闲到一定程度的步骤;若是,播放完成一帧,播放下一帧并产生回调信号。在一些实施方式中,设置标志位或者产生回调信号后,MCU判断数据是否读取完,若是,根据列表文件A进行歌曲切换;若否,重复MCU判断缓冲区A是否空闲到一定程度的步骤。本专利技术与现有技术相比,至少具有如下效果:1、本专利技术的一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,将第三方开源的MP3解码器移植到蓝牙耳机MCU固件里,通过MP3解码器的优化,MCU运行模式的改变(代码从flash转移到ram上),减少指令操作周期,从而形成加速的效果。将SD卡里的数据,使用缓冲的方式,提前将数据转移到MCU的RAM里,提高了系统运行的效率。音乐播放器采用了半保存半播放的方式,保证了歌曲播放的流畅性。附图说明图1是实施例中播放方法的流程示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。实施例一:如图1所示的,本实施例是一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,在蓝牙耳机的MCU固件里移植有FAT32文件系统的模块以及第三方开源的MP3解码器,所述播放方法包括:蓝牙耳机的MCU读取建立于MCU里面的列表文件A并对比当前SD卡歌曲信息是否一致,若不一致,更新列表文件A;MCU读取列表文件A里的歌曲信息,加载歌曲信息到缓冲器buffer里;MCU加载当前歌曲的信息,读取歌曲文件的数据;启动缓冲器,读取歌曲的数据,保存到缓冲器;一帧一帧地播放缓冲器内缓冲区内的数据,播放完成一帧,播放下一帧并产生回调信号,缓冲器读取歌曲的数据保存到缓冲器以保持缓冲区内至少有两帧数据直至当前歌曲播放完毕。本实施例的一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,将第三方开源的MP3解码器移植到蓝牙耳机MCU固件里,通过MP3解码器的优化,MCU运行模式的改变(代码从flash转移到ram上),减少指令操作周期,从而形成加速的效果。将SD卡里的数据,使用缓冲的方式,提前将数据转移到MCU的SRAM里,提高了系统运行的效率。音乐播放器采用了半保存半播放的方式,保证了歌曲播放的流畅性。此外,FAT32文件系统的嵌入,使得蓝牙MCU能够读取SD里所有的文件和新建文件。另外,MP3解码的方案选择用第三方的解码库,由于第三方的解码库适用于高性能的处理器,但此蓝牙MCU的性能勉强可以应对,所以需要对解码库源码进行部分优化和修改。源码大部分是c语言编写的,只需要将c语言的代码等价转化成汇编语言,就可以达到一定优化的结果。MP3相关解码的代码模块,从flash里代码转移到RAM上,在RAM上运行相关的代码模块,减少处理器的指令操作周期,从而速率能提高好几倍,更好地优化功耗。进一步地,首次将SD卡插入MCU时,MCU新建列表文件A并将所有MP3类型文件的路径和名字记录到列表文件A里。在下次启动MCU时,会先主动读取列表文件A里的所有内容,从而获取歌曲的消息,然后进行对比,如果有变化,则进行更新列表文件A,否则无需任何操作。通过列表文件A的记录内容,能够迅速恢复播放器的状态。进一步地,当MCU加载当前歌曲的信息,读取歌曲文件的数据后,MCU判断缓冲区A是否空闲到一定程度的,若是,启动缓冲器,读取歌曲的数据,保存到缓冲器;若否,MCU判断缓冲器是否在启动,若是,启动缓冲器,读取歌曲的数据,保存到缓冲器。进一步地,启动缓冲器,读取歌曲的数据,保存到缓冲器后,MCU判断缓冲区A是否填充到一定程度的,若是,关闭缓冲器。进一步地,若MCU判断缓冲器不是在启动或者缓冲区A不是填充到一定程度的,MCU读取缓冲区A的一帧数据,判断数据是否为空,若是,设置标志位;若否,一帧数据进行解码。进一步地,一帧数据进行解码后,MCU判断缓冲区B是否有两帧数据,若否,重复MCU判断缓冲区A是否空闲到一定程度的步骤;若是,播放完成一帧,播放下一帧并产生回调信号。进一步地,设置标志位或者产生回调信号后,MCU判断数据是否读取完,若是,根据缓冲器buffer内所述列表文件A进行歌曲切换;若否,重复MCU判断缓冲区A是否空闲到一定程度的步骤。MP3解码都是一帧一帧地解码的,音乐播放器在此设计中,并不具有实时性,通过缓冲歌曲的buffer,延迟一帧的播放时间,保证了播放器的流畅性。播放方式采用一帧播放一帧缓冲(半保存半播放),保持缓冲区有两个帧的数据大小,当一帧播放完成,就会产生一个回调的信号,接收到此信号后,蓝牙MCU会进行下一帧的解码,解码完成后自动填充进缓冲区。MP3播放器都是一帧一帧地播放的,由于MCU是通过SDIO跟外部SD卡通讯的,每次读取一帧的数据量并不大,导致通讯次数过于频繁,MCU功耗和占用MCU的资源不合理。在此,就引入一种新的处理方式,就是加大每次读取文件本文档来自技高网...
一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法

【技术保护点】
一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,其特征在于,在蓝牙耳机的MCU固件里移植有FAT32文件系统的模块以及第三方开源的MP3解码器,所述播放方法包括:蓝牙耳机的MCU读取建立于MCU里面的列表文件A并对比当前SD卡歌曲信息是否一致,若不一致,更新列表文件A;MCU读取列表文件A里的歌曲信息,加载歌曲信息到缓冲器里;MCU加载当前歌曲的信息,读取歌曲文件的数据;启动缓冲器,读取歌曲的数据,保存到缓冲器;一帧一帧地播放缓冲器内缓冲区内的数据,播放完成一帧,播放下一帧并产生回调信号,缓冲器读取歌曲的数据保存到缓冲器以保持缓冲区内至少有两帧数据直至当前歌曲播放完毕。

【技术特征摘要】
1.一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,其特征在于,在蓝牙耳机的MCU固件里移植有FAT32文件系统的模块以及第三方开源的MP3解码器,所述播放方法包括:蓝牙耳机的MCU读取建立于MCU里面的列表文件A并对比当前SD卡歌曲信息是否一致,若不一致,更新列表文件A;MCU读取列表文件A里的歌曲信息,加载歌曲信息到缓冲器里;MCU加载当前歌曲的信息,读取歌曲文件的数据;启动缓冲器,读取歌曲的数据,保存到缓冲器;一帧一帧地播放缓冲器内缓冲区内的数据,播放完成一帧,播放下一帧并产生回调信号,缓冲器读取歌曲的数据保存到缓冲器以保持缓冲区内至少有两帧数据直至当前歌曲播放完毕。2.根据权利要求1所述的一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,其特征在于,首次将SD卡插入MCU时,MCU新建列表文件A并将所有MP3类型文件的路径和名字记录到列表文件A里。3.根据权利要求1或2所述的一种嵌入蓝牙耳机的缓冲式MP3音乐播放器的播放方法,其特征在于,当MCU加载当前歌曲的信息,读取歌曲文件的数据后,MCU判断缓冲区A是否空闲到一定程度的,若是,启动缓冲器,读取歌曲的数据,保存到...

【专利技术属性】
技术研发人员:戴文穗陈洪太胡中骥严文华
申请(专利权)人:广东思派康电子科技有限公司
类型:发明
国别省市:广东,44

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

1