Tengo una web que lo hace, carga 3 archivos de audio diferentes (cada uno de 1 segundo) con un orden determinado y luego los fusiono en un solo búfer de audio (uno tras otro)
Para demostrar lo que quiero hacer, este es el fragmento de código de muestra:
var AudioContext = window.AudioContext || window.webkitAudioContext; var audioContextApp = new AudioContext(); var buffer1 = audioContextApp.createBufferSource(); var buffer2 = audioContextApp.createBufferSource(); var buffer3 = audioContextApp.createBufferSource(); var request1 = new XMLHttpRequest; request1.open('GET', URL_FIRST_SOUND, true); request1.onload = function() { var undecodedAudio = request1.response; audioContextApp.decodeAudioData(undecodedAudio, function(buffer) { buffer1.buffer = buffer; }); } request1.load() // DO the same thing with request2, request3 to load second and third sound.Ahora no sé cómo agregar correctamente esos 3 búferes de audio en uno y dejar que el usuario reproduzca el audio combinado.
Bueno, descubrí una solución yo mismo. Cuando conecté cada búfer al audioContext.destination, simplemente puedo especificar la hora en que se reproduce el segundo audio, que es la hora actual más la duración del primer AudioBuffer.