AudioContext
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.
A interface AudioContext
representa um grafo de processamento de áudio construído a partir de nós de áudio conectados, cada um representado por um AudioNode
Um contexto de áudio controla a criação dos nós que contém e a execução do processamento de áudio, ou decodificação. Você precisa criar um AudioContext antes de fazer qualquer outra coisa, pois tudo acontece dentro de um contexto.
Um AudioContext
pode ser um alvo de eventos, portanto, ele implementa a interface EventTarget
.
Construtor
AudioContext()
-
Cria e retorna um novo objeto
AudioContext
.
Propriedades
AudioContext.currentTime
Somente leitura-
Retorna um double representando um tempo cada vez maior de hardware em segundos usados para agendamento. Começa em
0
. AudioContext.destination
Somente leitura-
Retorna um
AudioDestinationNode
representando o destino final de todo o áudio no contexto. Pode ser pensado como o dispositivo de renderização de áudio. AudioContext.listener
Somente leitura-
Retorna o objeto
AudioListener
, usado para especialização 3D AudioContext.sampleRate
Somente leitura-
Retorna um float representando a taxa de amostragem (em amostras por segundo) usado por todos os nós neste contexto. A taxa de amostragem de um
AudioContext
não pode ser alterada. AudioContext.state
Somente leitura-
Retorna o estado atual do
AudioContext
. AudioContext.mozAudioChannelType
Non-standard Somente leitura-
Usado para retornar o canal de áudio que o som toca em um
AudioContext
irá tocar em um dispositivo do Firefox OS.
Manipuladores de eventos
AudioContext.onstatechange
-
Um manipulador de evento que é executado quando um evento do tipo
statechange
dispara.Isso ocorre quando o estado
AudioContext
muda, devido ao chamado de um dos métodos de mudança de estado (AudioContext.suspend
,AudioContext.resume
, orAudioContext.close
).
Métodos
Também implementa métodos a partir da interface EventTarget
.
AudioContext.close()
-
Fecha o contexto de áudio, liberando todos os recursos de áudio do sistema que ele usa.
AudioContext.createBuffer()
-
Cria um novo, objeto
AudioBuffer
vázio, que pode ser preenchido por dados e reproduzido através de umAudioBufferSourceNode
. AudioContext.createBufferSource()
-
Cria um
AudioBufferSourceNode
, que pode ser usado para reproduzir e manipular dados de audio contidos dentro de um objetoAudioBuffer
.AudioBuffer
são criados usandoAudioContext.createBuffer
ou retornado porAudioContext.decodeAudioData
quando decodifica com sucesso uma faixa de áudio. AudioContext.createMediaElementSource()
-
Cria um
MediaElementAudioSourceNode
associado com umHTMLMediaElement
. Isso pode ser usado para reproduzir e manipular o audio This can be used to play and manipulate audio dos elementos<video>
ou<audio>
. AudioContext.createMediaStreamSource()
-
Cria um
MediaStreamAudioSourceNode
associado com umMediaStream
um fluxo (stream) de áudio que pode vir do microfone local do computador ou de outras fontes. AudioContext.createMediaStreamDestination()
-
Cria um
MediaStreamAudioDestinationNode
associado com umMediaStream
representando um fluxo (stream) de audio que pode ser armazenado em um arquivo local ou enviados para outro computador. AudioContext.createScriptProcessor()
-
Cria um a
ScriptProcessorNode
, que pode ser usado para processamento de áudio direto via JavaScript. AudioContext.createStereoPanner()
-
Cria um
StereoPannerNode
, que pode ser usado para aplicar uma panorâmica estéreo para uma fonte de áudio. AudioContext.createAnalyser()
-
Creates an
AnalyserNode
, which can be used to expose audio time and frequency data and for example to create data visualisations. AudioContext.createBiquadFilter()
-
Cria um
BiquadFilterNode
, que representa um filtro de segunda ordem configurável como vários tipos de filtros comuns diferentes: high-pass, low-pass, band-pass, etc. AudioContext.createChannelMerger()
-
Cria um
ChannelMergerNode
, que é usado para combinar canais de múltiplos fluxos de áudio em um único fluxo de áudio. AudioContext.createChannelSplitter()
-
Cria um
ChannelSplitterNode
, que é usado para acessar os canais individuais de um fluxo de áudio e processá-los separadamente. AudioContext.createConvolver()
-
Cria um
ConvolverNode
, que pode ser usado para aplicar efeitos de convolução ao seu gráfico de áudio, por exemplo, um efeito de reverberação. AudioContext.createDelay()
-
Cria um
DelayNode
, que é usado para atrasar o sinal de áudio recebido por uma certa quantia. Este nó também é útil para criar loops de feedback em um gráfico de API de Web Audio. AudioContext.createDynamicsCompressor()
-
Cria um
DynamicsCompressorNode
, que pode ser usada para aplicar compressão acústica para um sínal de áudio. AudioContext.createGain()
-
Cria um
GainNode
, que pode ser usado para controlar o volume total do gráfico de áudio. AudioContext.createIIRFilter()
-
Cria um
IIRFilterNode
, que representa um filtro de segunda ordem configurável como vários tipos de filtros comuns diferentes. AudioContext.createOscillator()
-
Cria um
OscillatorNode
, uma fonte que representa uma forma de onda periódica. Isso basicamente gera um tom. AudioContext.createPanner()
-
Cria um
PannerNode
, que é usado para spatializar um fluxo de áudio recebido no espaço 3D. AudioContext.createPeriodicWave()
-
Cria um
PeriodicWave
, usado para definir uma forma de onda periódica que pode ser usada para determinar a saída de umOscillatorNode
. AudioContext.createWaveShaper()
-
Cria um
WaveShaperNode
, que é usado para implementar efeitos de distorção não-lineares. AudioContext.createAudioWorker()
-
Cria um
AudioWorkerNode
, que pode interagir com um segmento de trabalho da Web para gerar, processar ou analisar o áudio diretamente. Isso foi adicionado à especificação em 29 de agosto de 2014, e ainda não foi implementado em nenhum navegador. AudioContext.decodeAudioData()
-
Decodifica assincronamente dados de arquivos de áudio contidos em
ArrayBuffer
. Nesse caso, o ArrayBuffer geralmente é carregado a partir de um atributo deresposta
XMLHttpRequest
's definir oresponseType
paraarraybuffer
. Esse método funciona apenas em arquivos completos, não fragmentos de arquivos de áudio. AudioContext.resume()
-
Retoma a progressão do tempo em um contexto de áudio que anteriormente foi suspenso.
AudioContext.suspend()
-
Suspende a progressão do tempo no contexto de áudio, interrompendo temporariamente o acesso ao hardware de áudio e reduzindo o uso da CPU / bateria no processo.
Métodos obsoletos
AudioContext.createJavaScriptNode()
-
Cria um
JavaScriptNode
, usado para para processamento de áudio direto via JavaScript. Este método é obsoleto e foi substituído porAudioContext.createScriptProcessor()
. AudioContext.createWaveTable()
-
Cria um
WaveTableNode
, usado para definir uma forma de onda periódica. Este método é obsoleto e foi substituído porAudioContext.createPeriodicWave ()
.
Exemplos
Declaração básica de contexto de áudio:
var audioCtx = new AudioContext();
Cruzar a variante do navegador:
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.
Especificações
Specification |
---|
Web Audio API # AudioContext |
Compatibilidade com navegadores
BCD tables only load in the browser