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

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 Только для чтения

Возвращает количество входов узла. Узлы определённые как источники имеют 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.)

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

Смотрите также