es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo la duración del mp3 sin biblioteca de JavaScript o Node.js

Tengo un elemento de audio en mi HTML al cual le estoy proporcionando un archivo mp3 para cada elemento en un arreglo, eso funciona bien. Lo que quiero que suceda es que cargue sus metadatos y lea su duración, luego continúe con el siguiente elemento en el arreglo. Intenté usar getDuration.onloadedmetadata, pero eso solo obtuvo la duración del último archivo mp3 en el arreglo. Con el código debajo, registra la etiqueta de audio correcta, pero la duración devuelve NaN. No estoy seguro qué hacer para que esto funcione.

getDuration = document.querySelector('.preload-audio')
getDuration.src = `static/mp3/${artistName} - ${songName}.mp3`

console.log(getDuration)
console.log(getDuration.duration)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para asegurarse de que la duración correcta de cada archivo mp3 en la matriz se registre, puede agregar un escucha de eventos para el evento ‘loadedmetadata’ en el elemento de audio. Así es como:

    getDuration = document.querySelector('.preload-audio')
    getDuration.src = `static/mp3/${artistName} - ${songName}.mp3`
    
    getDuration.addEventListener('loadedmetadata', function() {
      console.log(getDuration.duration);
    });
    
    console.log(getDuration);
    

    Este código establece la fuente del elemento de audio en el archivo mp3 deseado, luego adjunta un escucha de eventos al elemento que espera a que ocurre el evento ‘loadedmetadata’. Cuando ocurre, registra la duración del archivo mp3 en la consola. La instrucción console.log fuera del escucha de eventos registra el elemento de audio en la consola, para que pueda asegurarse de que esté funcionando correctamente.

Comments are closed.