1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
---
title: AudioContext
slug: Web/API/AudioContext
tags:
- API
- Audio
- Interface
- Referencia
- Som
- api de áudio
translation_of: Web/API/AudioContext
---
<p>{{APIRef("Web Audio API")}}</p>
<div>
<p>A interface <code>AudioContext</code> representa um grafo de processamento de áudio construído a partir de nós de áudio conectados, cada um representado por um {{domxref("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.</p>
</div>
<p>Um <code>AudioContext</code>pode ser um alvo de eventos, portanto, ele implementa a interface {{domxref("EventTarget")}}.</p>
<h2 id="Construtor">Construtor</h2>
<dl>
<dt>{{domxref("AudioContext.AudioContext", "AudioContext()")}}</dt>
<dd>Cria e retorna um novo objeto <code>AudioContext</code>.</dd>
</dl>
<h2 id="Propriedades">Propriedades</h2>
<dl>
<dt>{{domxref("AudioContext.currentTime")}} {{readonlyInline}}</dt>
<dd>
<p>Retorna um double representando um tempo cada vez maior de hardware em segundos usados para agendamento. Começa em <code>0</code>.</p>
</dd>
<dt>{{domxref("AudioContext.destination")}} {{readonlyInline}}</dt>
<dd>Retorna um {{domxref("AudioDestinationNode")}} representando o destino final de todo o áudio no contexto. Pode ser pensado como o dispositivo de renderização de áudio.</dd>
<dt>{{domxref("AudioContext.listener")}} {{readonlyInline}}</dt>
<dd>Retorna o objeto {{domxref("AudioListener")}}, usado para especialização 3D</dd>
<dt>{{domxref("AudioContext.sampleRate")}} {{readonlyInline}}</dt>
<dd>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 {{domxref("AudioContext")}} não pode ser alterada.</dd>
<dt>{{domxref("AudioContext.state")}} {{readonlyInline}}</dt>
<dd>Retorna o estado atual do <code>AudioContext</code>.</dd>
<dt>{{domxref("AudioContext.mozAudioChannelType")}} {{ non-standard_inline() }} {{readonlyInline}}</dt>
<dd>Usado para retornar o canal de áudio que o som toca em um {{domxref("AudioContext")}} irá tocar em um dispositivo do Firefox OS.</dd>
</dl>
<h3 id="Manipuladores_de_eventos">Manipuladores de eventos</h3>
<dl>
<dt>{{domxref("AudioContext.onstatechange")}}</dt>
<dd>Um manipulador de evento que é executado quando um evento do tipo {{event("statechange")}} dispara.
<p>Isso ocorre quando o estado <code>AudioContext</code> muda, devido ao chamado de um dos métodos de mudança de estado ({{domxref("AudioContext.suspend")}}, {{domxref("AudioContext.resume")}}, or {{domxref("AudioContext.close")}}).</p>
</dd>
</dl>
<h2 id="Métodos">Métodos</h2>
<p><em>Também implementa métodos a partir da interface </em>{{domxref("EventTarget")}}.</p>
<dl>
<dt>{{domxref("AudioContext.close()")}}</dt>
<dd>
<p>Fecha o contexto de áudio, liberando todos os recursos de áudio do sistema que ele usa.</p>
</dd>
<dt>{{domxref("AudioContext.createBuffer()")}}</dt>
<dd>Cria um novo, objeto {{ domxref("AudioBuffer") }} vázio, que pode ser preenchido por dados e reproduzido através de um {{ domxref("AudioBufferSourceNode") }}.</dd>
<dt>{{domxref("AudioContext.createBufferSource()")}}</dt>
<dd>Cria um {{domxref("AudioBufferSourceNode")}}, que pode ser usado para reproduzir e manipular dados de audio contidos dentro de um objeto {{ domxref("AudioBuffer") }}. {{ domxref("AudioBuffer") }} são criados usando {{domxref("AudioContext.createBuffer")}} ou retornado por {{domxref("AudioContext.decodeAudioData")}} quando decodifica com sucesso uma faixa de áudio.</dd>
<dt>{{domxref("AudioContext.createMediaElementSource()")}}</dt>
<dd>Cria um {{domxref("MediaElementAudioSourceNode")}} associado com um {{domxref("HTMLMediaElement")}}. Isso pode ser usado para reproduzir e manipular o audio This can be used to play and manipulate audio dos elementos {{HTMLElement("video")}} ou {{HTMLElement("audio")}}.</dd>
<dt>{{domxref("AudioContext.createMediaStreamSource()")}}</dt>
<dd>Cria um {{domxref("MediaStreamAudioSourceNode")}} associado com um {{domxref("MediaStream")}} um fluxo (stream) de áudio que pode vir do microfone local do computador ou de outras fontes.</dd>
<dt>{{domxref("AudioContext.createMediaStreamDestination()")}}</dt>
<dd>Cria um {{domxref("MediaStreamAudioDestinationNode")}} associado com um {{domxref("MediaStream")}} representando um fluxo (stream) de audio que pode ser armazenado em um arquivo local ou enviados para outro computador.</dd>
<dt>{{domxref("AudioContext.createScriptProcessor()")}}</dt>
<dd>Cria um a {{domxref("ScriptProcessorNode")}}, que pode ser usado para processamento de áudio direto via JavaScript.</dd>
<dt>{{domxref("AudioContext.createStereoPanner()")}}</dt>
<dd>Cria um {{domxref("StereoPannerNode")}}, que pode ser usado para aplicar uma panorâmica estéreo para uma fonte de áudio.</dd>
<dt>{{domxref("AudioContext.createAnalyser()")}}</dt>
<dd>Creates an {{domxref("AnalyserNode")}}, which can be used to expose audio time and frequency data and for example to create data visualisations.</dd>
<dt>{{domxref("AudioContext.createBiquadFilter()")}}</dt>
<dd>Cria um {{domxref ("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.</dd>
<dt>{{domxref("AudioContext.createChannelMerger()")}}</dt>
<dd>Cria um {{domxref ("ChannelMergerNode")}}, que é usado para combinar canais de múltiplos fluxos de áudio em um único fluxo de áudio.</dd>
<dt>{{domxref("AudioContext.createChannelSplitter()")}}</dt>
<dd>Cria um {{domxref ("ChannelSplitterNode")}}, que é usado para acessar os canais individuais de um fluxo de áudio e processá-los separadamente.</dd>
<dt>{{domxref("AudioContext.createConvolver()")}}</dt>
<dd>Cria um {{domxref ("ConvolverNode")}}, que pode ser usado para aplicar efeitos de convolução ao seu gráfico de áudio, por exemplo, um efeito de reverberação.</dd>
<dt>{{domxref("AudioContext.createDelay()")}}</dt>
<dd>
<p>Cria um {{domxref ("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.</p>
</dd>
<dt>{{domxref("AudioContext.createDynamicsCompressor()")}}</dt>
<dd>Cria um {{domxref("DynamicsCompressorNode")}}, que pode ser usada para aplicar compressão acústica para um sínal de áudio.</dd>
<dt>{{domxref("AudioContext.createGain()")}}</dt>
<dd>Cria um {{domxref ("GainNode")}}, que pode ser usado para controlar o volume total do gráfico de áudio.</dd>
<dt>{{domxref("AudioContext.createIIRFilter()")}}</dt>
<dd>Cria um {{domxref ("IIRFilterNode")}}, que representa um filtro de segunda ordem configurável como vários tipos de filtros comuns diferentes.</dd>
<dt>{{domxref("AudioContext.createOscillator()")}}</dt>
<dd>Cria um {{domxref ("OscillatorNode")}}, uma fonte que representa uma forma de onda periódica. Isso basicamente gera um tom.</dd>
<dt>{{domxref("AudioContext.createPanner()")}}</dt>
<dd>Cria um {{domxref ("PannerNode")}}, que é usado para spatializar um fluxo de áudio recebido no espaço 3D.</dd>
<dt>{{domxref("AudioContext.createPeriodicWave()")}}</dt>
<dd>Cria um {{domxref ("PeriodicWave")}}, usado para definir uma forma de onda periódica que pode ser usada para determinar a saída de um {{domxref ("OscillatorNode")}}.</dd>
<dt>{{domxref("AudioContext.createWaveShaper()")}}</dt>
<dd>Cria um {{domxref ("WaveShaperNode")}}, que é usado para implementar efeitos de distorção não-lineares.</dd>
<dt>{{domxref("AudioContext.createAudioWorker()")}}</dt>
<dd>
<p>Cria um {{domxref ("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.</p>
</dd>
<dt>{{domxref("AudioContext.decodeAudioData()")}}</dt>
<dd>Decodifica assincronamente dados de arquivos de áudio contidos em {{domxref("ArrayBuffer")}}. Nesse caso, o ArrayBuffer geralmente é carregado a partir de um atributo de <code>resposta</code> {{domxref("XMLHttpRequest")}}'s definir o <code>responseType</code> para <code>arraybuffer</code>. Esse método funciona apenas em arquivos completos, não fragmentos de arquivos de áudio.</dd>
<dt>{{domxref("AudioContext.resume()")}}</dt>
<dd>Retoma a progressão do tempo em um contexto de áudio que anteriormente foi suspenso.</dd>
<dt>{{domxref("AudioContext.suspend()")}}</dt>
<dd>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.</dd>
</dl>
<h2 id="Métodos_obsoletos">Métodos obsoletos</h2>
<dl>
<dt>{{domxref("AudioContext.createJavaScriptNode()")}}</dt>
<dd>Cria um {{domxref("JavaScriptNode")}}, usado para para processamento de áudio direto via JavaScript. Este método é obsoleto e foi substituído por {{domxref("AudioContext.createScriptProcessor()")}}.</dd>
<dt>{{domxref("AudioContext.createWaveTable()")}}</dt>
<dd>Cria um {{domxref ("WaveTableNode")}}, usado para definir uma forma de onda periódica. Este método é obsoleto e foi substituído por {{domxref ("AudioContext.createPeriodicWave ()")}}.</dd>
</dl>
<h2 id="Exemplos">Exemplos</h2>
<p>Declaração básica de contexto de áudio:</p>
<pre class="brush: js notranslate">var audioCtx = new AudioContext();</pre>
<p>Cruzar a variante do navegador:</p>
<pre class="brush: js notranslate">var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.</pre>
<h2 id="Especificações">Especificações</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificação</th>
<th scope="col">Estado</th>
<th scope="col">Comentário</th>
</tr>
<tr>
<td>{{SpecName('Web Audio API', '#the-audiocontext-interface', 'AudioContext')}}</td>
<td>{{Spec2('Web Audio API')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatChrome(10.0)}}{{property_prefix("webkit")}}<br>
35</td>
<td>{{CompatGeckoDesktop(25.0)}} </td>
<td>{{CompatNo}}</td>
<td>15.0{{property_prefix("webkit")}}<br>
22</td>
<td>6.0{{property_prefix("webkit")}}</td>
</tr>
<tr>
<td><code>createStereoPanner()</code></td>
<td>{{CompatChrome(42.0)}}</td>
<td>{{CompatGeckoDesktop(37.0)}} </td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
<tr>
<td><code>onstatechange</code>, <code>state</code>, <code>suspend()</code>, <code>resume()</code></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop(40.0)}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
<th>Chrome for Android</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoDesktop(37.0)}} </td>
<td>2.2</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
<tr>
<td><code>createStereoPanner()</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
<tr>
<td><code>onstatechange</code>, <code>state</code>, <code>suspend()</code>, <code>resume()</code></td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Veja_também">Veja também</h2>
<ul style="margin-left: 40px;">
<li><a href="/en-US/docs/Web_Audio_API/Using_Web_Audio_API">Usando a Web Audio API</a></li>
<li>{{domxref("OfflineAudioContext")}}</li>
</ul>
|