Узел осциллятора
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с апреля 2021 года.
Интерфейс OscillatorNode представляет периодическую форму волны, например, синусоиду. Это модуль обработки аудио AudioScheduledSourceNode, который создаёт заданную частоту волны определённой формы — по сути, постоянный тон.
| Количество входов | 0 |
|---|---|
| Количество выходов | 1 |
| Режим количества каналов | max |
| Количество каналов |
2 (не используется в режиме по умолчанию) |
| Интерпретация каналов | speakers |
Конструктор
OscillatorNode()-
Создаёт новый экземпляр объекта
OscillatorNode, необязательно предоставив объект, определяющий значения по умолчанию для свойств узла свойств. В качестве альтернативы можно использовать метод-фабрикуBaseAudioContext.createOscillator(); см. Создание узла AudioNode.
Свойства экземпляра
Также наследует свойства от родителя, AudioScheduledSourceNode.
OscillatorNode.frequency-
Параметр a-rate
AudioParam, представляющий частоту колебаний в герцах (хотя возвращаемое значениеAudioParamявляется только для чтения, значение, которое оно представляет, нет). Значение по умолчанию составляет 440 Гц (стандартная нота ля). OscillatorNode.detune-
Параметр a-rate
AudioParam, представляющий девиацию колебаний в центах (хотя возвращаемое значениеAudioParamявляется только для чтения, значение, которое оно представляет, нет). Значение по умолчанию — 0. OscillatorNode.type-
Строка, определяющая форму волны для воспроизведения; может иметь одно из стандартных значений или
customдля использованияPeriodicWaveдля описания пользовательской формы волны. Разные волны дают разные тоны. Стандартные значения —"sine","square","sawtooth","triangle"и"custom". По умолчанию"sine".
Методы экземпляра
Также наследует методы от родителя, AudioScheduledSourceNode.
OscillatorNode.setPeriodicWave()-
Устанавливает
PeriodicWave, который описывает периодическую форму волны, которая будет использоваться вместо стандартных форм волн; вызов этого метода устанавливаетtypeвcustom. AudioScheduledSourceNode.start()-
Устанавливает точное время начала воспроизведения тона.
AudioScheduledSourceNode.stop()-
Устанавливает время остановки воспроизведения тона.
События
Также наследует события от родителя, AudioScheduledSourceNode.
Примеры
В следующем примере показано базовое использование AudioContext для создания узла осциллятора и начала воспроизведения тона на нём. Для примера применения ознакомьтесь с нашей демонстрацией «Violent Theremin» (см. app.js для соответствующего кода)).
// create web audio api context const audioCtx = new AudioContext(); // create Oscillator node const oscillator = audioCtx.createOscillator(); oscillator.type = "square"; oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz oscillator.connect(audioCtx.destination); oscillator.start();
Спецификации
| Спецификация |
|---|
| Web Audio API # Узел осциллятора |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
OscillatorNode |
55 | 79 | 53 | 42 | 14.1 | 55 | 53 | 42 | 14.5 | 6.0 | 55 |
OscillatorNode |
20 | 12 | 25 | 15 | 6 | 25 | 25 | 14 | 6 | 1.5 | 4.4 |
detune |
20 | 12 | 25 | 15 | 6 | 25 | 25 | 14 | 6 | 1.5 | 4.4 |
frequency |
20 | 12 | 25 | 15 | 6 | 25 | 25 | 14 | 6 | 1.5 | 4.4 |
setPeriodicWave |
30 | 12 | 25 | 17 | 8 | 30 | 25 | 18 | 8 | 2.0 | ≤37 |
type |
20 | 12 | 25 | 15 | 6 | 25 | 25 | 14 | 6 | 1.5 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode