AudioNode
AudioNode это общий интерфейс для описания модулей обработки аудио таких как источники звука (например HTML элементы
<audio>
или <video>
), генераторы звука (например OscillatorNode
(en-US) и т.п.), приёмники звука для модулей производящих обработку звука (например BiquadFilterNode
(en-US) или ConvolverNode
(en-US)), или регуляторы громкости (например GainNode
(en-US)).
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
(en-US) Только для чтения-
Возвращает количество входов узла. Узлы определённые как источники имеют
numberOfInputs
равное 0. AudioNode.numberOfOutputs
(en-US) Только для чтения-
Возвращает количество выходов узла. Узлы назначения — такие как
AudioDestinationNode
(en-US) — имеют количество выходов равное 0. AudioNode.channelCount
-
Это целое число, используемое для определения того, сколько каналов используются для up-mixing and down-mixing (en-US) с любыми входами узла. Его использование точнее определяется значением
AudioNode.channelCountMode
(en-US). AudioNode.channelCountMode
(en-US)-
Это перечисление описывающее путь согласования каналов между входом и выходом.
AudioNode.channelInterpretation
(en-US)-
Это перечисление описывающее каналы.Эта интерпретация описывает как будет происходить up-mixing and down-mixing (en-US). Возможные значения
"speakers"
or"discrete"
.
Методы
Так же реализует методы из интерфейса EventTarget
.
AudioNode.connect(AudioNode)
(en-US)-
Позволяет нам подключить один выход данного узла на один вход другого узла.
AudioNode.connect(AudioParam)
-
Позволяет нам подключить один выход данного узла на параметрический вход другого.
AudioNode.disconnect()
(en-US)-
Позволяет нам отключить текущий узел от другого, уже подключённого узла.
Примеры
Этот простой фрагмент кода показывает создание некоторых аудио узлов, и как можно использовать свойства и методы 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;
Specifications
Specification | Status | Comment |
---|---|---|
Web Audio API Определение 'AudioNode' в этой спецификации. |
Рекомендация |
Browser compatibility
BCD tables only load in the browser