Como conocer la duración de un elemento audio HTML cuyo source es un string Base64?

publicado por: Anonymous

Me explico, deseo calcular la duración de un segmento de audio base64 a partir de:

<audio controls id="audio" src="data:audio/mpeg;base64,T2dnUwACAAAAAAAAAAA+HAAAAAAAAGyawCEBQGZpc2h"></audio>

En este caso el string base64 es un ejemplo quizá demasiado corto pero ya entienden a lo que me refiero.

He probado con el:

audio.duration;

Pero supongo que por ser base64 y no un fichero de audio me devuelve NaN (not a number), en cambio el elemento mostrado en pantalla sí conoce su duración antes de empezar a reproducirse.

¿Habría alguna manera de obtener la duración de la cadena base64?

solución

Realice la siguiente prueba

https://jsfiddle.net/529u2yr6/

var audio1 = document.getElementById("audio1");

audio1.onloadeddata = function() {
    alert(audio1.duration);
};

Y puedo obtener la duracion del audio, para verla recuerda realizar un F5 de la página ya que este se visualiza cuando re recarga el audio por completo

Como comente debes acceer a este dato en el evento adecuado que permita asegurar que el audio o video haya sido cargado completamente

Nota: tuve que poner el ejemplo en jsfiddler porque el tamaño del audio superaba lo permitido por stackoverflow

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *