杰理AC696N开发板实战演示——如何实现flash或u盘的持续播放
2026年06月06日 14:05 发布者:清月芯世界
引言在室内外持续的广播、背景音乐播放或信息播报等场景中,我们需要设备能够长时间、不间断地播放同一段音频。本文将以JL杰理AC696N开发板为例,详细讲解如何将通过外挂SPI Flash,实现存储于其中的一段音频进行无限次、无缝衔接的循环播放,为开发大喇叭、背景音乐机等产品提供详实的参考方案。无缝循环播放的宏定义在AC696N的SDK中,要实现音乐文件的无缝循环播放,首先需要开启核心宏 FILE_DEC_REPEAT_EN。开启此宏后,SDK内部的解码器在播放完当前文件后,会自动跳转至文件开头继续播放,从而实现“无缝”衔接,避免卡顿或爆音。相关配置可以在 audio_dec_file.h 文件中找到。开启无缝循环宏定义
实现无限次循环的回调机制虽然开启了无缝循环宏,但SDK默认会有一个播放次数的限制。要打破这个限制,实现真正的“无限次”循环,关键在于修改循环播放的回调接口。
在 audio_dec_file.c 文件中,有一个名为 file_dec_repeat_cb 的回调函数。其逻辑是:当播放次数达到设定值时,函数返回 -1,通知解码器停止循环;若返回 0,则继续循环播放。
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019e96b8c8a37528b56540b5d602c80b.png?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1780724504%3B1780753304&q-key-time=1780724504%3B1780753304&q-header-list=&q-url-param-list=&q-signature=96af187a60656af87371ae30c4a0f5a0d21c7cdb
其次想循环一定次数,直接在下图位置设置次数即可
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019e96b914627af38de2afe8aa17c2f8.png?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1780724504%3B1780753304&q-key-time=1780724504%3B1780753304&q-header-list=&q-url-param-list=&q-signature=3cbff153e5d9fa32a680771797dc6b9ac5bd4de5
想做到无次数限制永久循环播放,只需找到循环播放回调接口
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019e96b9d51a72e6af8c5811889bf048.png?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1780724504%3B1780753304&q-key-time=1780724504%3B1780753304&q-header-list=&q-url-param-list=&q-signature=0eabe387ad9c152e28767ebb7c70af90f9f14117
函数的逻辑是到达次数限制时返回-1,停止循环播放;否则返回0;这样我们只需要让这个函数一直返回0,也就没有了这种限制即可达成无次数限制永久循环播放
总结与注意事项
[*]核心要点:通过开启 FILE_DEC_REPEAT_EN 宏并修改 file_dec_repeat_cb 回调,可以轻松实现音频的无限次无缝循环播放。
[*]功能互斥:请留意,启用外挂Flash的SPI引脚可能与TF卡(SD0)功能复用,二者通常只能二选一。
[*]首次使用:全新的空白Flash首次使用时,系统可能需要对其进行自动格式化,请耐心等待。
[*]应用场景:此方案非常适合需要长时间、不间断循环播放特定音频的场合,如背景音乐、持续广播等。
