Intento crear un búfer de audio cuya longitud depende de la longitud/duración del archivo de audio.
Uso la API de audio web https://webaudio.github.io/web-audio-api/#offlineaudiocontext
function getDuration(filename) { // Send XHR request for audio file to server. const request = new XMLHttpRequest(); request.open('GET', gorilla.stimuliURL(filename)); request.responseType = 'arraybuffer'; request.onload = function() { // Decode the audio. audioContext.decodeAudioData(request.response, function(buffer) { // Load and arm the source buffer. var tStimNew = buffer.duration; }); } request.send(); }
Obtengo la duración del archivo de audio usando esta función. Lo probé y tStimNew es exactamente lo que esperaba. El problema parece ser que la variable tStimNew solo es local para la función. Pero me gustaría tener la variable global para poder usarla más.
¿Dónde/cómo exactamente tengo que incluir una devolución? El anidamiento de las tres funciones lo hace demasiado complejo para mí.
¡Gracias de antemano!