Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

A interface OfflineAudioContext é uma interface AudioContext que representa um gráfico de processament de áudio construido a partir de conexões entre AudioNodes. Em contraste com o padrão AudioContext, um OfflineAudioContext não processa o áudio para o hardware do dispositivo; Em vez disso, ele gera, o mais rápido possível, e exibe o resultado para um AudioBuffer.

Construtor

OfflineAudioContext.OfflineAudioContext()
Cria uma nova instância OfflineAudioContext.

Propriedades

Também herda propriedades da sua entidade paterna, BaseAudioContext.

OfflineAudioContext.length Somente leitura

Um número inteiro que representa o tamanho do buffer em quadros de amostra.

Manipuladores de Eventos

OfflineAudioContext.oncomplete
É uma chamada EventHandler quando o processamento é encerrado, é quando o evento complete  - do tipo OfflineAudioCompletionEvent - é gerado, após a versão baseada em eventos do OfflineAudioContext.startRendering() é usada.

Métodos

Também herda métodos da interface paterna, BaseAudioContext.

OfflineAudioContext.resume()

Programa uma suspensão da progressão do tempo no contexto de áudio no horário especificado e retorna uma promessa.

OfflineAudioContext.suspend()

Agende uma suspensão da progressão do tempo no contexto de áudio no horário especificado e retorna uma promessa.

OfflineAudioContext.startRendering()

Inicia a renderização do áudio, levando em consideração as conexões atuais e as mudanças programadas atuais. Esta página abrange a versão baseada em eventos e a versão baseada em promessas.

Exemplo

Nesse exemplo, declaramos um ambos AudioContext e um OfflineAudioContext objeto. Nós usamos o AudioContext para carregar uma faixa de áudio via XHR (AudioContext.decodeAudioData), então o OfflineAudioContext para renderizar o áudio em um AudioBufferSourceNode e reproduzir a trilha. Depois que o gráfico de áudio off-line estiver configurado, você deve renderizá-lo para AudioBuffer usando OfflineAudioContext.startRendering.

Quando a 'promise' startRendering() é resolvida, a renderização foi concluída e a saída AudioBuffer é retornada fora da 'promise.

Neste ponto, criamos outro contexto de áudio, criamos um AudioBufferSourceNode dentro dele e configuramos o buffer para ser igual à promessa AudioBuffer. Isso é jogado como parte de um gráfico de áudio padrão simples.

Nota: Para um exemplo de trabalho, veja nosso offline-audio-context-promise Github repo (veja o código fonte também.)

// define o contexto de áudio online e offline

var audioCtx = new AudioContext();
var offlineCtx = new OfflineAudioContext(2,44100*40,44100);

source = offlineCtx.createBufferSource();

// usa XHR para carregar uma faixa de áudio, e
// decodeAudioData para decodificar e OfflineAudioContext para renderizar

function getData() {
  request = new XMLHttpRequest();

  request.open('GET', 'viper.ogg', true);

  request.responseType = 'arraybuffer';

  request.onload = function() {
    var audioData = request.response;

    audioCtx.decodeAudioData(audioData, function(buffer) {
      myBuffer = buffer;
      source.buffer = myBuffer;
      source.connect(offlineCtx.destination);
      source.start();
      //source.loop = true;
      offlineCtx.startRendering().then(function(renderedBuffer) {
        console.log('Rendering completed successfully');
        var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
        var song = audioCtx.createBufferSource();
        song.buffer = renderedBuffer;

        song.connect(audioCtx.destination);

        play.onclick = function() {
          song.start();
        }
      }).catch(function(err) {
          console.log('Rendering failed: ' + err);
          // Nota: A promessa deve rejeitar quando o StartRendering é chamado uma segunda vez em um OfflineAudioContext
      });
    });
  }

  request.send();
}

// Run getData to start the process off

getData();

Especificações

Specification Status Comment
Web Audio API
The definition of 'OfflineAudioContext' in that specification.
Rascunho atual Initial definition

Compatibilidade de Navegadores/Browser

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 14Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes
OfflineAudioContext() constructorChrome Full support 55
Notes
Full support 55
Notes
Notes Before Chrome 59, the default values were not supported.
Edge ? Firefox Full support 53IE No support NoOpera Full support 42Safari ? WebView Android Full support 55
Notes
Full support 55
Notes
Notes Before version 59, the default values were not supported.
Chrome Android Full support 55
Notes
Full support 55
Notes
Notes Before Chrome 59, the default values were not supported.
Edge Mobile ? Firefox Android Full support 53Opera Android Full support 42Safari iOS ? Samsung Internet Android Full support 6.0
lengthChrome Full support 51Edge Full support YesFirefox Full support YesIE No support NoOpera Full support 38Safari No support NoWebView Android Full support 51Chrome Android Full support 51Edge Mobile Full support YesFirefox Android Full support YesOpera Android Full support 38Safari iOS No support NoSamsung Internet Android Full support 5.0
oncompleteChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes
resumeChrome Full support 49Edge Full support YesFirefox No support NoIE No support NoOpera Full support 36Safari No support NoWebView Android Full support 49Chrome Android Full support 49Edge Mobile Full support YesFirefox Android No support NoOpera Android Full support 36Safari iOS No support NoSamsung Internet Android Full support 5.0
suspendChrome Full support 49Edge Full support YesFirefox No support NoIE No support NoOpera Full support 36Safari No support NoWebView Android Full support 49Chrome Android Full support 49Edge Mobile Full support YesFirefox Android No support NoOpera Android Full support 36Safari iOS No support NoSamsung Internet Android Full support 5.0
startRenderingChrome Full support 14Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 15Safari Full support 6WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 26Opera Android Full support 15Safari iOS ? Samsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: EduardoFerr
Última atualização por: EduardoFerr,