Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

433
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda