begin()
描述
藉由给予取样率和缓冲时间的大小初始化 Audio 函式库。
语法
Audio.begin(rate, size);
参数
rate
(int):音频档案的取样率。如果音频是立体声,取样率必须乘以 2(如. 44100hz 立体声 = 88200)。
size
(int):音频缓冲时间的大小,以毫秒为单位。
回传
无回传值
Example
#include <SD.h> #include <Audio.h> void setup() { // 输出鲍率设定 Serial.begin(9600); // 设定 SD 卡 Serial.print("Initializing SD card..."); if (!SD.begin()) { Serial.println(" failed!"); return; } Serial.println(" done."); // 44100hz 立体声 => 88200 取样率 // 100 毫秒的缓冲时间 Audio.begin(88200, 100); } void loop() { int count=0; // 从 SD 卡开启音频档案 File myFile = SD.open("test.wav"); if (!myFile) { // 如果开启档案失败,印出错误讯息并中止 Serial.println("error opening test.wav"); while (true); } const int S=1024; // 每个区块的取样个数 short buffer[S]; Serial.print("Playing"); // 直到档案结束 while (myFile.available()) { // 从档案读取资料至 buffer myFile.read(buffer, sizeof(buffer)); // 预备样本 int volume = 1023; Audio.prepare(buffer, S, volume); // 输出缓冲区中的音频样本 Audio.write(buffer, S); // 每一百个区块印出一个 '.' count++; if (count == 100) { Serial.print("."); count = 0; } } myFile.close(); Serial.println("End of file. Thank you for listening!"); while (true) ; }
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.