杰理AC696N开发板实战演示——如何实现flash或u盘的持续播放

电子说

1.4w人已加入

描述

引言

在室内外持续的广播、背景音乐播放或信息播报等场景中,我们需要设备能够长时间、不间断地播放同一段音频。本文将以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,则继续循环播放。

开发板

其次想循环一定次数,直接在下图位置设置次数即可

开发板

想做到无次数限制永久循环播放,只需找到循环播放回调接口

开发板

函数的逻辑是到达次数限制时返回-1,停止循环播放;否则返回0;这样我们只需要让这个函数一直返回0,也就没有了这种限制即可达成无次数限制永久循环播放

总结与注意事项

核心要点:通过开启 FILE_DEC_REPEAT_EN 宏并修改 file_dec_repeat_cb 回调,可以轻松实现音频的无限次无缝循环播放。

功能互斥:请留意,启用外挂Flash的SPI引脚可能与TF卡(SD卡)功能复用,二者通常只能二选一。

首次使用:全新的空白Flash首次使用时,系统可能需要对其进行自动格式化,请耐心等待。

应用场景:此方案非常适合需要长时间、不间断循环播放特定音频的场合,如背景音乐、持续广播等。



审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分