内存音频播放示例
源码位置: samples/modules/app_player/mem_audio 查看源码
本示例演示如何使用 app_player 组件播放存储在内存(Flash)中的音频文件。
功能说明
使用
mem://协议播放内存中的音频数据演示基本的播放控制:播放、暂停、恢复、停止
支持从 Flash 指定地址读取音频数据
mem:// 协议格式
mem://addr=<内存地址>size=<数据大小>
addr: 音频数据在内存中的起始地址(十进制)size: 音频数据的大小(字节数)
示例:
"mem://addr=806355570size=1620" // 播放地址为 806355570,大小为 1620 字节的音频
准备工作
1. 准备音频文件
在 res/ 目录下准备一个音频文件,例如 001_network_suc.mp3。
支持的音频格式:
MP3
WAV
AAC
M4A
PCM
建议参数(获得最佳性能):
采样率:16 kHz
位深度:16 bit
声道:单声道
2. 烧录音频文件到 Flash
使用烧录工具将音频文件烧录到 Flash 的指定地址。
默认配置:
Flash 地址:
0x30100000预留空间:128KB
烧录步骤:
使用 CSK Burner 或其他烧录工具
选择音频文件
res/001_network_suc.mp3设置烧录地址为
0x30100000执行烧录
3. 修改代码配置
打开 src/main.c,根据实际情况修改以下配置:
#define AUDIO_FLASH_ADDR 0x30100000 /* 音频在Flash中的起始地址 */
#define AUDIO_DATA_SIZE 8192 /* 音频文件大小(字节) */
AUDIO_FLASH_ADDR:必须与烧录时的地址一致AUDIO_DATA_SIZE:设置为实际音频文件的大小
编译和运行
编译
重要提示:在编译前,请先确认您使用的开发板型号。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
确保已安装对应的工具链。
烧录固件
编译完成后,烧录生成的固件:
# 固件路径
build/arcs.bin
完整烧录流程:
烧录音频文件到
0x30100000烧录固件
build/arcs.bin到程序区
运行
烧录完成后,设备会自动运行示例程序。
预期输出
=== Memory Audio Playback Sample ===
Audio Flash Address: 0x30100000
Audio Data Size: 8192 bytes
PA OFF
Memory URL: mem://addr=806355570size=8192
=== Scenario 1: Play memory audio ===
Playing audio from memory...
PA ON
Player prepared
Player playing
=== Scenario 2: Pause playback ===
Audio paused
Player paused
=== Scenario 3: Resume playback ===
Audio resumed
Player playing
=== Scenario 4: Stop playback ===
Audio stopped
Player stopped
PA OFF
=== Sample completed ===
You can modify AUDIO_FLASH_ADDR and AUDIO_DATA_SIZE
to match your actual audio file location and size.
注意事项
地址对齐:确保 Flash 地址与烧录工具的地址一致
文件大小:
AUDIO_DATA_SIZE必须设置为实际文件大小,否则可能导致播放失败或播放不完整Flash 分区:确保音频存储地址不与固件或其他数据冲突
音频格式:推荐使用 16kHz、16bit、单声道的音频文件以获得最佳性能
PA 控制:根据硬件设计配置正确的 PA 控制引脚