AudioContext
Базовая поддержка Широко доступна *
Эта функция хорошо поддерживается и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Интерфейс AudioContext представляет собой график обработки звука, построенный из связанных аудиомодулей, каждый из которых представлен AudioNode.
Контекст аудио управляет как созданием узлов, так и выполнением обработки или декодирования аудио. Вам необходимо создать AudioContext перед выполнением любых других действий, поскольку все происходит внутри контекста. Рекомендуется создать один AudioContext и повторно использовать его вместо инициализации нового каждый раз. Можно использовать один AudioContext для нескольких разных аудиоисточников и конвейеров одновременно.
Конструктор
AudioContext()-
Создает и возвращает новый объект
AudioContext.
Свойства экземпляра
Также наследует свойства от родительского интерфейса BaseAudioContext.
-
AudioContext.baseLatencyТолько для чтения -
Возвращает количество секунд задержки обработки, возникающей при передаче аудио от
AudioDestinationNodeв аудиоподсистему, посредствомAudioContext. -
AudioContext.outputLatencyТолько для чтения -
Возвращает оценку задержки вывода текущего контекста аудио.
-
AudioContext.sinkIdТолько для чтения Экспериментальный Безопасный контекст -
Возвращает идентификатор выходного устройства аудио.
Методы экземпляра
Также наследует методы от родительского интерфейса BaseAudioContext.
AudioContext.close()-
Закрывает контекст аудио, освобождая используемые им системные аудиоресурсы.
AudioContext.createMediaElementSource()-
Создает
MediaElementAudioSourceNode, связанный сHTMLMediaElement. Это можно использовать для воспроизведения и управления звуком из<video>или<audio>элементов. AudioContext.createMediaStreamSource()-
Создает
MediaStreamAudioSourceNode, связанный сMediaStream, представляющим аудиопоток, который может поступать с микрофона локального компьютера или других источников. AudioContext.createMediaStreamDestination()-
Создает
MediaStreamAudioDestinationNode, связанный сMediaStream, представляющим аудиопоток, который может храниться в локальном файле или отправляться на другой компьютер. AudioContext.createMediaStreamTrackSource()-
Создает
MediaStreamTrackAudioSourceNode, связанный сMediaStream, представляющим дорожку потока мультимедиа. AudioContext.getOutputTimestamp()-
Возвращает новый
AudioTimestampобъект, содержащий два значения временных меток аудио, относящиеся к текущему контексту аудио. AudioContext.resume()-
Возобновляет прогрессирование времени в контексте аудио, который ранее был приостановлен.
-
AudioContext.setSinkId()Экспериментальный Безопасный контекст -
Устанавливает выходное аудиоустройство для
AudioContext. AudioContext.suspend()-
Приостанавливает прогрессирование времени в контексте аудио, временно останавливая доступ к аудиооборудованию и снижая использование ЦП/батареи в процессе.
События
-
sinkchangeЭкспериментальный -
Срабатывает, когда выходное аудиоустройство (и, следовательно,
AudioContext.sinkId) изменилось.
Примеры
Базовая декларация контекста аудио:
const audioCtx = new AudioContext(); const oscillatorNode = audioCtx.createOscillator(); const gainNode = audioCtx.createGain(); const finish = audioCtx.destination; // etc.
Спецификации
| Спецификация |
|---|
| Web Audio API # AudioContext |
Совместимость браузеров
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
AudioContext |
35["До Chrome 66 каждая вкладка ограничена 6 аудиоконтекстами в Chrome; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome.", "Если latencyHint недействителен, Chrome выдает исключение TypeError. См. Нестандартные исключения в Chrome для подробностей."] |
12 | 25 |
22["До Opera 53 каждая вкладка ограничена 6 аудиоконтекстами в Opera; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome.", "Если latencyHint недействителен, Opera выдает исключение TypeError. См. Нестандартные исключения в Chrome для подробностей."] |
14.1Новые аудиоконтексты приостанавливаются до тех пор, пока методresume() не будет вызван действием пользователя, например, событием click. |
35["До Chrome Android 66 каждая вкладка ограничена 6 аудиоконтекстами в Chrome Android; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome Android.", "Если latencyHint недействителен, Chrome Android выдает исключение TypeError. См. Нестандартные исключения в Chrome Android для подробностей."] |
25 |
22["До Opera Android 47 каждая вкладка ограничена 6 аудиоконтекстами в Opera; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome.", "Если latencyHint недействителен, Opera выдает исключение TypeError. См. Нестандартные исключения в Chrome для подробностей."] |
14.5Новые аудиоконтексты приостанавливаются до тех пор, пока методresume() не будет вызван действием пользователя, например, событием click. |
3.0["До Samsung Internet 9.0 каждая вкладка ограничена 6 аудиоконтекстами в Samsung Internet; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome.", "Если latencyHint недействителен, Samsung Internet выдает исключение TypeError. См. Нестандартные исключения в Chrome для подробностей."] |
37["До WebView 66 каждая вкладка ограничена 6 аудиоконтекстами в WebView; попытка создать больше вызовет исключениеDOMException. Для подробностей см. Ограничение аудиоконтекста на вкладку в Chrome.", "Если latencyHint недействителен, WebView выдает исключение TypeError. См. Нестандартные исключения в Chrome для подробностей."] |
AudioContext |
3514–57 | 12 | 25 | 2215–44 | 14.16–14.1 | 3518–57 | 25 | 2214–43 | 14.56–14.5 | 3.01.0–7.0 | 374.4–57 |
baseLatency |
58 | 79 | 70 | 45 | 14.1 | 58 | 79 | 43 | 14.5 | 7.0 | 58 |
close |
42 | 14 | 40 | 29 | 9 | 42 | 40 | 29 | 9 | 4.0 | 42 |
createMediaElementSource |
15 | 12 | 25Если частота дискретизации указана для аудиоконтекста, она должна совпадать с частотой дискретизации потока, иначе этот метод завершится неудачей. |
15 | 6 | 18 | 25Если частота дискретизации указана для аудиоконтекста, она должна совпадать с частотой дискретизации потока, иначе этот метод завершится неудачей. |
14 | 6 | 1.0 | ≤37 |
createMediaStreamDestination |
25 | 79 | 25 | 15 | 11 | 25 | 25 | 14 | 11 | 1.5 | ≤37 |
createMediaStreamSource |
22 | 12 | 25 | 15 | 11 | 25 | 25 | 14 | 11 | 1.5 | ≤37 |
createMediaStreamTrackSource |
Нет | Нет | 68Firefox 68 реализует определение "первого" аудиотрека из обновленного стандарта; теперь первым треком является тот, чей ID идёт первым лексикографически. |
Нет | Нет | Нет | 68Firefox for Android 68 реализует определение "первого" аудиотрека из обновленного стандарта; теперь первым треком является тот, чей ID идёт первым лексикографически. |
Нет | Нет | Нет | Нет |
error_event |
128 | 128 | Нет | 114 | Нет | 128 | Нет | 85 | Нет | Нет | 128 |
getOutputTimestamp |
57 | 79 | 70 | 44 | 14.1 | 57 | 79 | 43 | 14.5 | 7.0 | 57 |
outputLatency |
102 | 102 | 70 | 88 | Нет | 102 | 79 | 70 | Нет | 19.0 | 102 |
resume |
41 | 14 | 40 | 28 | 9 | 41 | 40 | 28 | 9 | 4.0 | 41 |
setSinkId |
110 | 110 | Нет | 96 | Нет | 110 | Нет | 74 | Нет | 21.0 | 110 |
sinkId |
110 | 110 | Нет | 96 | Нет | 110 | Нет | 74 | Нет | 21.0 | 110 |
sinkchange_event |
110 | 110 | Нет | 96 | Нет | 110 | Нет | 74 | Нет | 21.0 | 110 |
suspend |
41 | 14 | 40 | 28 | 9 | 41 | 40 | 28 | 9 | 4.0 | 41 |
См. также
© 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/AudioContext