星球大战主题播放器
本项目演示如何使用 reSpeaker Lite 开发板播放星球大战主题曲。
功能特性
- 播放存储在内存中的星球大战主题曲
- 利用 I2S 接口进行音频输出
- 采用 AudioTools 框架进行音频处理和流传输
- 易于使用的 AudioLogger 用于调试和监控
代码
#include "AudioTools.h"
#include "StarWars30.h"
AudioInfo info(22050, 1, 16);
I2SStream i2s; // Output to I2S
MemoryStream music(StarWars30_raw, StarWars30_raw_len);
StreamCopy copier(i2s, music); // copies sound into i2s
void setup(){
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Info);
auto config = i2s.defaultConfig(TX_MODE);
config.copyFrom(info);
i2s.begin(config);
}
void loop(){
if (!copier.copy()){
i2s.end();
stop();
}
}
配置说明
info
:定义音频配置,包括采样率(22050 Hz)、声道数(1 为单声道)和每个采样的位数(16 位)。
i2s
:创建 I2SStream 类的实例,通过 I2S 接口输出音频。
music
:创建 MemoryStream 对象,在内存中存储星球大战主题曲数据。
copier
:创建 StreamCopy 对象,将音频数据从内存流复制到 I2S 流。
自定义设置
您可以将 StarWars30_raw
和 StarWars30_raw_len
变量替换为您自己的音频数据,以播放不同的歌曲或音效。
可以通过调整 AudioInfo 对象的参数来修改音频配置,例如采样率、声道数和每个采样的位数。