Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

La interfaz AudioBuffer representa un pequeño recurso de audio que se almacena en memoria, creado a partir de un archivo de audio usando el método AudioContext.decodeAudioData(), o de datos en bruto con el método AudioContext.createBuffer(). Una véz cargado en AudioBuffer, el audio puede ser reproducido pasandolo en el método AudioBufferSourceNode.

Objetos de este tipo son diseñados para almacenar pequeños trozos de audio, normalmente menos de 45 segundos. Para audios más extensos, los objectos implementan  MediaElementAudioSourceNode que es más adecuado. El buffer contiene data en el siguiente formado: non-interleaved IEEE754 32-bit linear PCM with a nominal range between -1 and +1, that is, 32bits floating point buffer, with each samples between -1.0 and 1.0. If the AudioBuffer has multiple channels, they are stored in separate buffer.

Constructor

AudioBuffer()
Crea y retorna una nueva instancia de AudioBuffer 

Propiedades

AudioBuffer.sampleRate Read only
Returns a float representing the sample rate, in samples per second, of the PCM data stored in the buffer.
AudioBuffer.length Read only
Returns an integer representing the length, in sample-frames, of the PCM data stored in the buffer.
AudioBuffer.duration Read only
Returns a double representing the duration, in seconds, of the PCM data stored in the buffer.
AudioBuffer.numberOfChannels Read only
Returns an integer representing the number of discrete audio channels described by the PCM data stored in the buffer.

Métodos

AudioBuffer.getChannelData()
Returns a Float32Array containing the PCM data associated with the channel, defined by the channel parameter (with 0 representing the first channel).
AudioBuffer.copyFromChannel()
Copies the samples from the specified channel of the AudioBuffer to the destination array.
AudioBuffer.copyToChannel()
Copies the samples to the specified channel of the AudioBuffer, from the source array.

Ejemplo

El siguiente ejemplo muestra como se crea un AudioBuffer  y rellena con un sonido blanco aleatorio. Puedes encontrar el código completo en nuestro repositorio: webaudio-examples; y una versión disponible: running live

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// Create an empty three-second stereo buffer at the sample rate of the AudioContext
var myArrayBuffer = audioCtx.createBuffer(2, audioCtx.sampleRate * 3, audioCtx.sampleRate);

// Fill the buffer with white noise;
// just random values between -1.0 and 1.0
for (var channel = 0; channel < myArrayBuffer.numberOfChannels; channel++) {
  // This gives us the actual array that contains the data
  var nowBuffering = myArrayBuffer.getChannelData(channel);
  for (var i = 0; i < myArrayBuffer.length; i++) {
    // Math.random() is in [0; 1.0]
    // audio needs to be in [-1.0; 1.0]
    nowBuffering[i] = Math.random() * 2 - 1;
  }
}

// Get an AudioBufferSourceNode.
// This is the AudioNode to use when we want to play an AudioBuffer
var source = audioCtx.createBufferSource();

// set the buffer in the AudioBufferSourceNode
source.buffer = myArrayBuffer;

// connect the AudioBufferSourceNode to the
// destination so we can hear the sound
source.connect(audioCtx.destination);

// start the source playing
source.start();

Especificaciones

Specification Status Comment
Web Audio API
La definición de 'AudioBuffer' en esta especificación.
Working Draft Initial definition.

Compatibilidad de navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidEdge MobileFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
AudioBufferChrome Soporte completo 14Edge Soporte completo SiFirefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
AudioBuffer() constructorChrome Soporte completo 55
Notas
Soporte completo 55
Notas
Notas The context parameter was supported up until version 57, but has now been removed.
Edge ? Firefox Soporte completo 53IE Sin soporte NoOpera Soporte completo 42
Notas
Soporte completo 42
Notas
Notas The context parameter was supported up until version 44, but has now been removed.
Safari ? WebView Android Soporte completo 55
Notas
Soporte completo 55
Notas
Notas The context parameter was supported up until version 57, but has now been removed.
Chrome Android Soporte completo 55
Notas
Soporte completo 55
Notas
Notas The context parameter was supported up until version 57, but has now been removed.
Edge Mobile ? Firefox Android Soporte completo 53Opera Android Soporte completo 42
Notas
Soporte completo 42
Notas
Notas The context parameter was supported up until version 44, but has now been removed.
Safari iOS ? Samsung Internet Android Soporte completo 6.0
durationChrome Soporte completo 14Edge Soporte completo 12Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
lengthChrome Soporte completo 14Edge Soporte completo 12Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
numberOfChannelsChrome Soporte completo 14Edge Soporte completo 12Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
sampleRateChrome Soporte completo 14Edge Soporte completo 12Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
copyFromChannelChrome Soporte completo 14Edge Soporte completo 13Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS ? Samsung Internet Android Soporte completo Si
copyToChannelChrome Soporte completo 14Edge Soporte completo 13Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS ? Samsung Internet Android Soporte completo Si
getChannelDataChrome Soporte completo 14Edge Soporte completo 12Firefox Soporte completo 25IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6WebView Android Soporte completo SiChrome Android Soporte completo 18Edge Mobile Soporte completo SiFirefox Android Soporte completo 26Opera Android Soporte completo 14Safari iOS Soporte completo SiSamsung Internet Android Soporte completo Si

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibilidad desconocida  
Compatibilidad desconocida
Ver notas de implementación.
Ver notas de implementación.

Mira también

Etiquetas y colaboradores del documento

Colaboradores en esta página: mdnwebdocs-bot, rayrojas
Última actualización por: mdnwebdocs-bot,