Estoy creando una aplicación web de transmisión html5 a/v. Esta pregunta se refiere a la parte de audio del proyecto, pero estoy seguro de que me encontraré con una situación similar cuando empiece con la porción de video. Mi dispositivo de destino es el navegador safari del iPad (de ahí que tenga que hacer esto html5). La reproducción funciona bien, pero tengo una barra de carga que debe reflejar qué parte de la pista se ha cargado. Siguiendo la especificación W3, he intentado poner en práctica esta de la siguiente manera usando jQuery:Evento de audio HTML5 'progress' no se activa
var that = this;
that.player = $('audio')[0];
$('that.player').bind('progress',function(){
var buffer = that.player.buffered.end(0)
that.updateLoadBuffer(buffer);
});
Esto no funcionó. 'that.player.buffered' devuelve un objeto TimeRanges, y TimeRanges tiene un método 'end (index)' que devuelve la posición de reproducción del final del buffer en segundos para el TimeRange especificado por 'index'. TimeRanges también tiene una propiedad .length que te dice cuántos TimeRanges están encapsulados por el objeto. Cuando traté de registrar esa propiedad, encontré que TimeRanges.length = 0, lo que significa que no se transfieren TimeRanges. También cuando lancé declaraciones de registro en la función vinculada, encontré que el evento 'progreso' nunca se activó. Tengo funciones separadas para los eventos 'loadedmetata' y 'timeupdate' que siguen un formato similar, y aquellos se disparan como se esperaba. Intenté otros métodos para capturar eventos en vano:
that.player.onprogress = function(e){
console.log('progressEvent heard');
};
that.player.addEventListener('progress',progressHandler, false)
function progressHandler(e){
console.log('progressEvent heard');
};
Ninguno de estos desencadenó mi mensaje de consola. Mi declaración de etiqueta de audio es la siguiente:
<audio style="width:0;height:0;"></audio>
¿Qué estoy haciendo mal aquí?
ACTUALIZACIÓN: Estoy usando wowzamediaserver para manejar la transmisión http. No sé si eso podría tener algo que ver con eso.
otra actualización: me doy cuenta que no tengo una fuente en mi etiquetas de audio, que se debe a lo fijo dinámicamente usando jQuery, de la siguiente manera:
$('audio').attr('src','http://my.wowza.server:1935/myStreamingApp/_definst_/mp3:path/to/my/track/audio.mp3/playlist.m3u8');
de nuevo, no estoy teniendo problemas de reproducción por lo que este no debería tener ningún impacto en mi problema, pero solo quiero darles a ustedes la mejor idea posible.
estoy teniendo el mismo problema casi 2 años más tarde - creo que es debido al uso de playlist.m3u8, pero todavía tienen que encontrar una manera de evitarlo. ¿Alguna suerte todavía? – GDP