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++;
}
}