AudioNode

AudioNode это общий интерфейс для описания модулей обработки аудио таких как источники звука (например HTML элементы <audio> или <video>), генераторы звука (например OscillatorNode (en-US) и т.п.), приёмники звука для модулей производящих обработку звука (например BiquadFilterNode (en-US) или ConvolverNode (en-US)), или регуляторы громкости (например GainNode (en-US)).

AudioNodes participating in an AudioContext create a audio routing graph.

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.)

js
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

See also