Функція write()
Audio
write()
Записує аудіосигнал з буфера в DAC0 та DAC1.
Синтаксис
Audio.write(буфер, довжина)Параметри
буфер (short): названий буфер з аудіофайломдовжина (int): число зразків для запису
Повертає
нічогоПриклад
#include <SD.h>
#include <SPI.h>
#include <Audio.h>
void setup()
{
// налагодження виходу на 9600 бод
Serial.begin(9600);
// установка SD-карти
Serial.print("Ініціалізація SD-карти...");
if (!SD.begin(4)) {
Serial.println(" не вдалося!");
return;
}
Serial.println(" виконано.");
// високошвидкісна SPI-передача
SPI.setClockDivider(4);
// 44100 кГц стерео => 88200 частота дискретизації
// 100 мс пребуферизації
Audio.begin(88200, 100);
}
void loop()
{
int count=0;
// відкрити файл wave з sd-карти
File myFile = SD.open("test.wav");
if (!myFile) {
// якщо файл не відкрито, надрукуйте помилку та стоп
Serial.println("помилка у відкритті test.wav");
while (true);
}
const int S=1024; // кількість зразків для читання в блоці
short buffer[S];
Serial.print("Відтворення");
// поки файл не закінчиться
while (myFile.available()) {
// зчитати з файлу у буфер
myFile.read(buffer, sizeof(buffer));
// підготувати зразки
int volume = 1024;
Audio.prepare(buffer, S, volume);
// зберігайте зразки для аудіо
Audio.write(buffer, S);
// кожні 100 блоків друкувати '.'
count++;
if (count == 100) {
Serial.print(".");
count = 0;
}
}
myFile.close();
Serial.println("Кінець файлу. Дякуємо за прослуховування!");
while (true) ;
}
Повернутись до головної

Коментарі 0