JavaScript:Библиотеки/p5.sound/Класс p5.AudioIn
Черновик |
Класс 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);
}