AudioContext
============

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()` (en-US)

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` (en-US) Somente leitura 

Retorna um `AudioDestinationNode` (en-US) representando o destino final de todo o áudio no contexto. Pode ser pensado como o dispositivo de renderização de áudio.

`AudioContext.listener` (en-US) Somente leitura 

Retorna o objeto `AudioListener` (en-US), usado para especialização 3D

`AudioContext.sampleRate` (en-US) 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` (en-US) 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` (en-US)

Um manipulador de evento que é executado quando um evento do tipo `statechange (en-US)` dispara.

Isso ocorre quando o estado `AudioContext` muda, devido ao chamado de um dos métodos de mudança de estado (`AudioContext.suspend` (en-US), `AudioContext.resume` (en-US), or `AudioContext.close` (en-US)).

Métodos
-------

*Também implementa métodos a partir da interface* `EventTarget`.

`AudioContext.close()` (en-US)

Fecha o contexto de áudio, liberando todos os recursos de áudio do sistema que ele usa.

`AudioContext.createBuffer()` (en-US)

Cria um novo, objeto `AudioBuffer` (en-US) vázio, que pode ser preenchido por dados e reproduzido através de um `AudioBufferSourceNode` (en-US).

`AudioContext.createBufferSource()` (en-US)

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

`AudioContext.createMediaElementSource()` (en-US)

Cria um `MediaElementAudioSourceNode` (en-US) associado com um `HTMLMediaElement` (en-US). 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()` (en-US)

Cria um `MediaStreamAudioSourceNode` (en-US) associado com um `MediaStream` (en-US) um fluxo (stream) de áudio que pode vir do microfone local do computador ou de outras fontes.

`AudioContext.createMediaStreamDestination()` (en-US)

Cria um `MediaStreamAudioDestinationNode` (en-US) associado com um `MediaStream` (en-US) representando um fluxo (stream) de audio que pode ser armazenado em um arquivo local ou enviados para outro computador.

`AudioContext.createScriptProcessor()` (en-US)

Cria um a `ScriptProcessorNode` (en-US), que pode ser usado para processamento de áudio direto via JavaScript.

`AudioContext.createStereoPanner()` (en-US)

Cria um `StereoPannerNode` (en-US), que pode ser usado para aplicar uma panorâmica estéreo para uma fonte de áudio.

`AudioContext.createAnalyser()` (en-US)

Creates an `AnalyserNode` (en-US), which can be used to expose audio time and frequency data and for example to create data visualisations.

`AudioContext.createBiquadFilter()` (en-US)

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()` (en-US)

Cria um `ChannelMergerNode` (en-US), que é usado para combinar canais de múltiplos fluxos de áudio em um único fluxo de áudio.

`AudioContext.createChannelSplitter()` (en-US)

Cria um `ChannelSplitterNode` (en-US), que é usado para acessar os canais individuais de um fluxo de áudio e processá-los separadamente.

`AudioContext.createConvolver()` (en-US)

Cria um `ConvolverNode` (en-US), 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()` (en-US)

Cria um `DelayNode` (en-US), 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()` (en-US)

Cria um `DynamicsCompressorNode` (en-US), que pode ser usada para aplicar compressão acústica para um sínal de áudio.

`AudioContext.createGain()` (en-US)

Cria um `GainNode` (en-US), que pode ser usado para controlar o volume total do gráfico de áudio.

`AudioContext.createIIRFilter()` (en-US)

Cria um `IIRFilterNode` (en-US), que representa um filtro de segunda ordem configurável como vários tipos de filtros comuns diferentes.

`AudioContext.createOscillator()` (en-US)

Cria um `OscillatorNode` (en-US), uma fonte que representa uma forma de onda periódica. Isso basicamente gera um tom.

`AudioContext.createPanner()` (en-US)

Cria um `PannerNode` (en-US), que é usado para spatializar um fluxo de áudio recebido no espaço 3D.

`AudioContext.createPeriodicWave()` (en-US)

Cria um `PeriodicWave` (en-US), usado para definir uma forma de onda periódica que pode ser usada para determinar a saída de um `OscillatorNode` (en-US).

`AudioContext.createWaveShaper()` (en-US)

Cria um `WaveShaperNode` (en-US), 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()` (en-US)

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()` (en-US)

Retoma a progressão do tempo em um contexto de áudio que anteriormente foi suspenso.

`AudioContext.suspend()` (en-US)

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()` (en-US)

Cria um `JavaScriptNode`, usado para para processamento de áudio direto via JavaScript. Este método é obsoleto e foi substituído por `AudioContext.createScriptProcessor()` (en-US).

`AudioContext.createWaveTable()` (en-US)

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 with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Usando a Web Audio API (en-US)
* `OfflineAudioContext`