A menudo leo que no es posible pausar/reanudar archivos de audio con el Web Audio API.
Pero ahora vi un example donde realmente hicieron posible detenerlo y reanudarlo. Traté de averiguar cómo lo hicieron. Pensé que tal vez source.looping = false
era la clave, pero no lo era.
Por ahora mi audio siempre está reproduciéndose desde el principio.Web Audio API reanudar desde la pausa
Este es mi código actual
var context = new (window.AudioContext || window.webkitAudioContext)();
function AudioPlayer() {
this.source = context.createBufferSource();
this.analyser = context.createAnalyser();
this.stopped = true;
}
AudioPlayer.prototype.setBuffer = function(buffer) {
this.source.buffer = buffer;
this.source.looping = false;
};
AudioPlayer.prototype.play = function() {
this.source.connect(this.analyser);
this.analyser.connect(context.destination);
this.source.noteOn(0);
this.stopped = false;
};
AudioPlayer.prototype.stop = function() {
this.analyser.disconnect();
this.source.disconnect();
this.stopped = true;
};
¿Alguien sabe qué hacer, para conseguir que funcione?
Bueno, él no usa 'noteGrainOn()' en el ejemplo (aún no puede entender cómo lo hace). Pero de todos modos, esto funciona como un hechizo, así que lo tomaré como una respuesta aceptada. Gracias :) –
noteGrainOn() ahora se ha renombrado en la especificación, ya que tiene noteOn() - ambos son ahora play(), con o sin un argumento de compensación de grano. Sin embargo, aún no he visto esto respaldado. – LeeGee
es en realidad 'start' (con o sin argumentos' start (howSoonRelativeToCurrentTime, fromSecondInBuffer, forDuration) ') y parece funcionar en Chrome Canary –