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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support14 Yes25 No156
OfflineAudioContext() constructor551 ?53 No42 ?
length51 Yes Yes No38 No
oncomplete141225 No156
resume49 Yes No No36 No
suspend49 Yes No No36 No
startRendering141225 No156
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support1414 Yes2615 ? Yes
OfflineAudioContext() constructor551551 ?5342 ?6.0
length5151 Yes Yes38 No5.0
oncomplete Yes14 Yes2615 ? Yes
resume4949 Yes No36 No5.0
suspend4949 Yes No36 No5.0
startRendering Yes14 Yes2615 ? Yes

1. Before Chrome 59, the default values were not supported.

Veja também

Etiquetas do documento e colaboradores

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