JavaScript:Библиотеки/p5.sound/Класс p5.SoundRecorder

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс p5.SoundRecorder [1]

Описание

Этот класс предназначен для записи звука, чтобы получившуюся запись можно было воспроизвести и/или сохранить в файл формата «*.wav». Объект p5.SoundRecorder записывает все звуки, генерируемые вашим скетчем. Кроме того, к нему при помощи функции setInput() можно назначить какой-то конкретный источник звука.

Метод record() в качестве параметра принимает объект p5.SoundFile. Если проигрывание файла будет остановлено – или когда истечет время, или после вызова функции stop() – объект p5.SoundRecorder отправит свою запись объекту p5.SoundFile для дальнейшего проигрывания.

Чтобы использовать эту функцию, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:

<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>

Синтаксис

new p5.SoundRecorder()

Методы

  • setInput() – подключает к объекту p5.SoundRecorder заданный объект или звуковое устройство. Если параметра задано не будет, p5.SoundRecorder вернет звуки, генерируемые всеми объектами библиотеки p5.sound в вашем скетче.
  • record() – начинает запись. Чтобы получить доступ к получившейся записи, задайте в первом параметре объект p5.SoundFile. Объект p5.SoundRecorder отправит то, что записал, этому объекту p5.SoundFile, чтобы он проиграл это после завершения записи. Также предусмотрены дополнительные параметры для длительности записи (в секундах) и функции обратного вызова, которая будет вызвана после завершения записи.
  • stop() – останавливает запись. После того, как запись останавливается, ее результаты отправляются объекту p5.SoundFile, который был задан параметром в функции record(). И если в record() также была задана функция обратного вызова, она тоже будет вызвана.
  • saveSound() – сохраняет объект p5.SoundFile в файл формата «*.wav».

Пример

№1

var mic, recorder, soundFile;
var state = 0;

function setup() {
  background(200);
  // создаем объект p5.AudioIn:
  mic = new p5.AudioIn();

  // начинаем обрабатывать аудиоданные, идущие через микрофон:
  mic.start();

  // создаем объект p5.SoundRecorder для записи звука:
  recorder = new p5.SoundRecorder();

  // подключаем микрофон к объекту для записи звука:
  recorder.setInput(mic);

  // этот объект p5.SoundFile будет использоваться
  // для проигрывания и сохранения записанного звука:
  soundFile = new p5.SoundFile();

  text('keyPress to record', 20, 20);
   //  'нажмите на клавишу, чтобы начать запись'
}

function keyPressed() {
  // убеждаемся, что пользователь включил микрофон: 
  if (state === 0 && mic.enabled) {

    // записываем звук на наш объект p5.SoundFile:
    recorder.record(soundFile);

    background(255,0,0);
    text('Recording!', 20, 20);
     //  'Запись!'
    state++;
  }
  else if (state === 1) {
    background(0,255,0);

    // останавливаем запись
    // и отправляем результаты объекту «soundFile»:
    recorder.stop();

    text('Stopped', 20, 20);
     //  'Запись остановлена'
    state++;
  }

  else if (state === 2) {
    soundFile.play(); // проигрываем результат!
    save(soundFile, 'mySound.wav');
    state++;
  }
}

№2

№3

См.также

Внешние ссылки