本地文件系统音频播放示例
源码位置: samples/modules/app_player/local_fs 查看源码
本示例演示如何使用 app_player 模块从本地文件系统(FAT32 SD 卡)播放音频文件。
功能说明
示例展示了以下功能:
初始化 SD 卡并挂载 FAT32 文件系统
创建播放器实例并注册事件回调
播放本地音频文件(MP3 格式)
控制播放流程:播放 → 暂停 → 恢复 → 停止
文件系统说明
文件系统类型:FAT32
挂载位置:SD 卡(通过 SDIO 接口)
挂载点:
/SD:
准备工作
1. 准备音频文件
音频文件位于 res/audio_file/ 目录下:
res/audio_file/
├── 000_geeting.mp3
└── 001_network_suc.mp3
2. 生成文件系统镜像
使用 tools/fatfs_package 工具将音频文件打包为 FAT32 镜像:
# 进入工具目录
cd tools/fatfs_package
# 生成镜像文件(示例:32MB 大小)
./tools/fatfs_package/mkfatfs.py -o fatfs.img -s 32M -d samples/modules/app_player/local_fs/res/audio_file -l SD
参数说明:
-o fatfs.img:输出镜像文件名-s 32M:镜像大小(根据音频文件总大小调整)-d <目录>:源文件目录路径-l SD:卷标名称
详细使用方法请参考:tools/fatfs_package/README.md
3. 编译工程
重要提示:在编译前,请先确认您使用的开发板型号。SDK 目前支持以下开发板:
arcs_evb - ARCS EVB 评估板
arcs_mini - ARCS Mini 开发板
根据您的开发板型号,选择对应的编译命令:
在示例目录下执行编译:
# 使用 arcs_evb 开发板
./build.sh -C -DBOARD=arcs_evb
# 或使用 arcs_mini 开发板
./build.sh -C -DBOARD=arcs_mini
Note
如果在 SDK 根目录执行,需要指定示例路径:
# 使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb
# 或使用 arcs_mini 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_mini
Note
确保已安装对应的工具链。
4. 烧录固件和文件系统
步骤 1:烧录应用程序固件
# 烧录应用固件到 Flash
./tools/burn/cskburn -s /dev/ttyACM0 -b 3000000 0x0 build/arcs.bin -C arcs
步骤 2:烧录文件系统镜像到 SD 卡(T卡)
重要:文件系统镜像需要烧录到 eMMC/T卡,而不是 Flash。
# 烧录 FAT32 镜像到 T卡(通过 SDIO 接口)
./tools/burn/cskburn -s /dev/ttyACM0 -b 3000000 --emmc 0x0 fatfs.img -C arcs
注意事项:
必须使用
--emmc参数指定烧录到 T卡确保 T卡已正确插入开发板的卡槽
SDIO 接口使用引脚 PA4~PA9
运行示例
烧录完成后,重启开发板,示例程序将自动运行:
初始化并挂载 SD 卡文件系统
创建播放器实例
播放
/SD:/001_network_suc.mp3文件演示暂停、恢复、停止等控制操作
日志输出
示例运行时会输出以下日志:
[app_player_sample] App Player Local Filesystem Sample
[app_player_sample] Starting playback demo...
[app_player_sample] Player prepared
[app_player_sample] Player playing
[app_player_sample] PA ON
[app_player_sample] Player stopped
[app_player_sample] PA OFF
[app_player_sample] Playback demo completed
API 使用示例
初始化播放器
app_player_config_t config = {
.pa_ctrl_callback = pa_control_callback
};
app_player_init(&config);
创建播放器实例
app_player_t *player = app_player_create("tone");
注册事件回调
app_player_register_callback(player, player_event_callback, NULL);
播放控制
// 播放文件
app_player_play(player, "/SD:/001_network_suc.mp3");
// 暂停
app_player_pause(player);
// 恢复播放
app_player_resume(player);
// 停止(同步)
app_player_stop_sync(player);
常见问题
1. 挂载文件系统失败
原因:
T卡未正确插入或接触不良
文件系统镜像未烧录或烧录地址错误
T卡格式不是 FAT32
解决方案:
检查 T卡是否正确插入卡槽
确认使用
--emmc参数烧录镜像到 T卡重新生成并烧录文件系统镜像
2. 播放失败
原因:
音频文件路径错误
文件不存在或损坏
音频格式不支持
解决方案:
确认音频文件路径正确(
/SD:/文件名)检查镜像中是否包含该音频文件
使用支持的音频格式(MP3、WAV 等)
3. PA 控制无效
原因:
GPIO 配置错误
PA 硬件连接问题
解决方案:
检查
PA_PIN_NUM和PA_GPIO_DEVICE配置确认硬件 PA 电路连接正确