Sto costruendo un'app di streaming web di a/v html5. Questa domanda fa riferimento alla parte audio del progetto, ma sono sicuro che mi imbatterò in una situazione simile quando inizierò sulla parte video. Il mio dispositivo di destinazione è il browser safari dell'iPad (quindi, perché devo fare questo html5). La riproduzione funziona bene, ma ho una barra di caricamento che deve riflettere quanta parte della traccia è stata caricata. Seguendo le specifiche w3, ho cercato di attuare questa seguente modo utilizzando jQuery:Evento HTML5 'avanzamento' non attivo
var that = this;
that.player = $('audio')[0];
$('that.player').bind('progress',function(){
var buffer = that.player.buffered.end(0)
that.updateLoadBuffer(buffer);
});
Ciò non ha funzionato. 'that.player.buffered' restituisce un oggetto TimeRanges e TimeRanges hanno un metodo 'end (index)' che restituisce la posizione di riproduzione della fine del buffer in secondi per il TimeRange specificato da 'index'. TimeRanges ha anche una proprietà .length che ti dice quante TimeRanges sono incapsulate dall'oggetto. Quando ho provato a registrare quella proprietà ho trovato che TimeRanges.length = 0, che significa che nessun TimeRang viene passato indietro. Inoltre, quando ho buttato le dichiarazioni di registrazione nella funzione associata, ho scoperto che l'evento "progresso" non è mai stato attivato. Ho funzioni separate per gli eventi 'loadedmetata' e 'timeupdate' che seguono un formato simile e quelli si attivano come previsto. Ho provato altri metodi per catturare eventi senza alcun risultato:
Nessuno di questi ha attivato il messaggio della mia console. La mia dichiarazione di tag audio è la seguente:
<audio style="width:0;height:0;"></audio>
cosa sto facendo di sbagliato qui?
UPDATE: Sto usando wowzamediaserver per gestire lo streaming http. Non so se questo potrebbe avere qualcosa a che fare con questo.
ANCORA un altro aggiornamento: mi rendo conto di non avere una fonte nel mio tag audio, che è perché ho impostato in modo dinamico utilizzando jQuery, come segue:
$('audio').attr('src','http://my.wowza.server:1935/myStreamingApp/_definst_/mp3:path/to/my/track/audio.mp3/playlist.m3u8');
di nuovo io non sto avendo problemi di riproduzione in modo tale non dovrebbe avere alcuna relazione con il mio problema, ma voglio solo darti ragazzi più chiari possibile.
Sto avendo lo stesso problema quasi 2 anni dopo - io credo che sia dovuta all'utilizzo playlist.m3u8, ma non hanno ancora trovato un modo intorno ad esso. Hai ancora fortuna? – GDP