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

Материал из Онлайн справочника
Версия от 21:31, 19 октября 2018; Myagkij (обсуждение | вклад) (→‎Методы)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Черновик


Класс p5.AudioIn [1]

Описание

Этот класс считывает информацию с устройств ввода аудиоданных (например, с микрофона, встроенного в компьютер).

Методы start() и stop() включают и выключают устройство ввода аудиоданных. Когда оно включено, громкость поступающего звука можно измерить при помощи функции getLevel() или при помощи подключения к объекту p5.FFT.

Если вы хотите прослушать аудиоданные объекта p5.AudioIn, воспользуйтесь методом connect(). Объект p5.AudioIn по умолчанию не подключен к «выходу» библиотеки p5.sound, чтобы ваши динамики (или другое устройство, используемое по умолчанию вашим ПК для вывода звука) не дублировало звуки, звучащие рядом с компьютером.

Примечание: Класс p5.AudioIn использует интерфейс getUserMedia(), который поддерживается не всеми браузерами. В браузере Chrome им можно пользоваться через локальный хост и https, но в http доступ к нему может быть ограничен.

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

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

Синтаксис

new p5.AudioIn([errorCallback])

Параметры

errorCallback  функция, которая будет вызвана, если во время получения доступа к p5.AudioIn будет получена ошибка. К примеру, Safari и iOS-девайсы в данный момент не разрешают доступ к микрофону. Тип данных  функция

Поля

enabled  браузер должен разрешить доступ к микрофону или другому устройству для ввода аудиоданных. Значение в этом поле по умолчанию  «false». Если браузер разрешит доступ, значение сменится на «true».

Методы

  • start() – запускает обработку аудиоданных, полученных через устройство ввода. Вызов start() дает возможность использовать другие методы класса p5.AudioIn вроде getLevel(). Обратите внимание, что по умолчанию объект p5.AudioIn не подключен к «выходу» библиотеки p5.sound, поэтому вы ничего не услышите, пока не вызовете метод connect(). Некоторые браузеры не дают доступа к микрофону пользовательского устройства. К примеру, Chrome дает к нему доступ только через локальный хост и https. Поэтому при создании объекта p5.AudioIn имеет смысл задать errorCallback – функцию, которая будет вызвана, если браузер не даст доступа к устройству ввода аудиоданных (микрофону).
  • stop() – выключает объект p5.AudioIn. После этого вы не сможете определить громкость звука с помощью getLevel(). При перезапуске объекта p5.AudioIn браузер, возможно, снова запросит доступ к устройству для ввода аудиоданных.
  • connect() – подключает объект p5.AudioIn к другому звуковому объекту. Если параметра не задано, подключится к главному «выходу» аудиоданных (например, к динамикам).
  • disconnect() – отключает объект p5.AudioIn от всех звуковых объектов. К примеру, если ранее была вызвана функция connect(), то после вызова disconnect() звуковые данные перестанут отправляться на динамики.
  • getLevel() – считывает громкость объекта p5.AudioIn. В объект p5.AudioIn уже встроен объект p5.Amplitude, что упрощает считывание уровня громкости звука, идущего через микрофон. Принимает опциональный параметр для смягчения громкости в диапазоне «0.0 < 1.0». Примечание: Перед вызовом getLevel() нужно обязательно вызвать start().
  • amp() – задает громкость звука, идущего через микрофон, в диапазоне между «0.0» и «1.0».
  • getSources() – возвращает список доступных устройств ввода аудиоданных. Это функция-обертка функции MediaDevices.enumerateDevices(). Возвращает объект Promise.
  • setSource() – задает устройство ввода аудиоданных. Имеет параметр, в котором задается позиция в массиве, возвращаемом функцией getSources(). Можно использовать только вместе с браузерами, которые поддерживают MediaDevices.enumerateDevices().

Пример

№1

var mic;
function setup(){
  mic = new p5.AudioIn()
  mic.start();
}
function draw(){
  background(0);
  micLevel = mic.getLevel();
  ellipse(width/2, constrain(height-micLevel*height*5, 0, height), 10, 10);
}

№2

№3

См.также

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