Функція prepare()

Документація

Audio

prepare()

Готує аудіозразки з названого файлу в аудіобуфер та встановлює гучність.

Синтаксис
Audio.prepare(буфер, зразки, гучність)

Параметри
буфер (short): названий буфер, що зберігає аудіофайл
зразки (int): число зразків для запису
гучність (int): 10-бітне число, що відображає гучність аудіо, що відтворюється. 0 вимикає звук, 1023 є максимальною гучністю.

Повертає
нічого

Приклад
#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

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.