内存音频播放示例

本示例演示如何使用 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

烧录步骤:

  1. 使用 CSK Burner 或其他烧录工具

  2. 选择音频文件 res/001_network_suc.mp3

  3. 设置烧录地址为 0x30100000

  4. 执行烧录

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

完整烧录流程:

  1. 烧录音频文件到 0x30100000

  2. 烧录固件 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.

注意事项

  1. 地址对齐:确保 Flash 地址与烧录工具的地址一致

  2. 文件大小AUDIO_DATA_SIZE 必须设置为实际文件大小,否则可能导致播放失败或播放不完整

  3. Flash 分区:确保音频存储地址不与固件或其他数据冲突

  4. 音频格式:推荐使用 16kHz、16bit、单声道的音频文件以获得最佳性能

  5. PA 控制:根据硬件设计配置正确的 PA 控制引脚