Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

434
Vistas
How to get duration globally from audio file in javascript when using Audiocontext() API?

I used AudioContext API to get duration from audio answered to stackoverflow as follows:

let durationTime;

// Step 1: We need AudioContext instance to decode audio files.
let context = new AudioContext();

// Step 2: Download a .mp3 file using AJAX
let request = new XMLHttpRequest();
request.addEventListener('load', fileLoaded);
request.open('GET', '/sounds/2W.mp3');
request.responseType = 'arraybuffer';
request.send();

// Step 3: File downloaded, need to be decoded now.
function fileLoaded() {
    if (request.status < 400)
        context.decodeAudioData(request.response, fileDecoded);
        console.log(`durationTime at fileLoaded : ${durationTime}`)
}


// Step 4: File decoded, we can get the duration.
function fileDecoded(audioBuffer) {

    // This is the duration you want, in seconds:
    durationTime = audioBuffer.duration;
    console.log(`durationTime at fileDecoded : ${durationTime}`)
}

console.log(`durationTime at global = ${durationTime}`)

The result of this code as follows:

durationTime at global = 0

durationTime at fileLoaded : 0

durationTime at fileDecoded : 1.1363125

It works within function fileDecoded(audioBuffer) as a local variable, but the variable of durationTime doesn't works at globally. Why and how can I use this variable of durationTime as globally ?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda