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 AudioContextpode 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 unsupported templ: event 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, or AudioContext.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 um AudioBufferSourceNode.

AudioContext.createBufferSource()

Cria um AudioBufferSourceNode, que pode ser usado para reproduzir e manipular dados de audio contidos dentro de um objeto AudioBuffer. AudioBuffer são criados usando AudioContext.createBuffer ou retornado por AudioContext.decodeAudioData quando decodifica com sucesso uma faixa de áudio.

AudioContext.createMediaElementSource()

Cria um MediaElementAudioSourceNode associado com um HTMLMediaElement. 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 um MediaStream um fluxo (stream) de áudio que pode vir do microfone local do computador ou de outras fontes.

AudioContext.createMediaStreamDestination()

Cria um MediaStreamAudioDestinationNode associado com um MediaStream 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 um OscillatorNode.

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 de resposta XMLHttpRequest's definir o responseType para arraybuffer. 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 por AudioContext.createScriptProcessor().

AudioContext.createWaveTable()

Cria um WaveTableNode, usado para definir uma forma de onda periódica. Este método é obsoleto e foi substituído por AudioContext.createPeriodicWave ().

Exemplos

Declaração básica de contexto de áudio:

js
var audioCtx = new AudioContext();

Cruzar a variante do navegador:

js
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

Veja também