AudioNode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
AudioNode это общий интерфейс для описания модулей обработки аудио таких как источники звука (например HTML элементы <audio>
или <video>
), генераторы звука (например OscillatorNode
и т.п.), приёмники звука для модулей производящих обработку звука (например BiquadFilterNode
или ConvolverNode
), или регуляторы громкости (например GainNode
).
AudioNode
имеет входы и выходы, каждый с заданным количеством каналов. AudioNode
без входов в с одним или несколькими выходами называются источниками (source node). Результаты обработки передаются от одного AudioNode к другому, при этом каждый узел считывает только свой вход, производит обработку и представляет результат на свой выход, или просто пропускает аудио через себя (например AnalyserNode
где результат представляется отдельно).
Разные узлы могут быть связаны в граф обработки. Граф помещается в AudioContext
. Один AudioNode
может принадлежать только одному AudioContext
. В общем, узлы наследуют свойства и методы AudioNode, но они могут также и определять собственный функционал.Смотрите описания конкретных узлов на страницах этих узлов перечисленных на главной странице Web Audio API.
Примечание:
An AudioNode
can be target of events, therefore it implements the EventTarget
interface.
Свойства
AudioNode.context
Только для чтения-
Возвращает связанный
AudioContext
, это объект, представляющий граф, в котором находится данный узел. AudioNode.numberOfInputs
Только для чтения-
Возвращает количество входов узла. Узлы определённые как источники имеют
numberOfInputs
равное 0. AudioNode.numberOfOutputs
Только для чтения-
Возвращает количество выходов узла. Узлы назначения — такие как
AudioDestinationNode
— имеют количество выходов равное 0. AudioNode.channelCount
-
Это целое число, используемое для определения того, сколько каналов используются для up-mixing and down-mixing с любыми входами узла. Его использование точнее определяется значением
AudioNode.channelCountMode
. AudioNode.channelCountMode
-
Это перечисление описывающее путь согласования каналов между входом и выходом.
AudioNode.channelInterpretation
-
Это перечисление описывающее каналы.Эта интерпретация описывает как будет происходить up-mixing and down-mixing. Возможные значения
"speakers"
or"discrete"
.
Методы
Так же реализует методы из интерфейса EventTarget
.
AudioNode.connect(AudioNode)
-
Позволяет нам подключить один выход данного узла на один вход другого узла.
AudioNode.connect(AudioParam)
-
Позволяет нам подключить один выход данного узла на параметрический вход другого.
AudioNode.disconnect()
-
Позволяет нам отключить текущий узел от другого, уже подключённого узла.
Примеры
Этот простой фрагмент кода показывает создание некоторых аудио узлов, и как можно использовать свойства и методы AudioNode. Вы можете найти примеры такого использования на любом из примеров, на странице Web Audio API (например Violent Theremin.)
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);
oscillator.context;
oscillator.numberOfInputs;
oscillator.numberOfOutputs;
oscillator.channelCount;
Спецификации
Specification |
---|
Web Audio API # AudioNode |
Совместимость с браузерами
BCD tables only load in the browser