2012-10-06 31 views
5

Ho installato un server icecast2 che è in grado di streaming ogg o mp3, sia a 192 kbps.Riproduzione musica in streaming si arresta quando una nuova canzone inizia a utilizzare tag HTML5 audio in Chrome e Firefox

nel codice HTML che uso:

<audio controls autoplay> 
    <source src="http://site.com:8000/mount1.ogg" type="audio/ogg"> 
    <source src="http://site.com:8000/mount2.mp3" type="audio/mp3"> 
    Your browser does not support the audio element. 
</audio> 

Ma in Chrome 22/Firefox 13 ogni volta che una nuova canzone ha inizio, il lettore arresta la riproduzione. In IE10 continua a giocare senza problemi. Sto pensando che questo potrebbe avere qualcosa a che fare con il fatto che Chrome e Firefox utilizzano la fonte ogg mentre IE utilizza mp3. Sembra che ci sia anche un problema con Opera 12 durante la riproduzione di 192 kbps (la musica si sente saccaduta), sono passato a 128 e poi ha funzionato correttamente.

Qualcuno sa una correzione per questo?

Grazie per il vostro aiuto!

+1

Avete in ascolto un listener di eventi che attende "terminato" Ciò è molto utile: [html5 audio lo stato di avanzamento] (http://html5doctor.com/html5-audio-the-state-of-play/# eventi), Si può sempre far scattare il brano successivo una volta che la prima traccia è terminata – Eruant

+0

grazie per il link, questo è molto bello: http://jplayer.org/HTML5.Media.Event.Inspector/ –

risposta

4

questo distacco come un hack temporanea fino a quando qualcuno dà una risposta migliore.

In Chrome MEDIA_ERR_DECODE viene generata quando la riproduzione si interrompe, mentre in Firefox semplicemente ferma senza alcun errore.

ho cambiato il src-currentSrc e poi chiamato play() in onerror e onended evento, ma il suono è talvolta interrotta far riprendere il gioco. Ci deve essere un modo migliore.

/* jQuery - run on document ready */ 
$(function() 
{ 
    var audioElement = $('#audioPlayer')[0]; 

    audioElement.onended = audioElement.onerror = function() 
    { 
     audioElement.src = audioElement.currentSrc; 
     audioElement.play(); 
    }; 
}); 
+1

Răzvan: hai mai scoperto perché i tuoi flussi fanno questo? Sto avendo lo stesso problema, e penserei che se il problema fosse in .ogg stream in generale, sarebbe meglio documentato delle due domande SO che ho trovato. – Dmitri

+0

@Dmitri: non ho trovato nulla di nuovo. Suppongo che abbia a che fare con ciò che è stato implementato per quanto riguarda l'audio html5 in quei browser in cui non funziona. –

+0

questo mi ha salvato. Ho capito come risolvere in Chrome. Stavo cercando un lettore basato su flash, ma la maggior parte non funzionava. – JavaDev

-1

Non devi fare così tanto cosa come detto sopra^l'unico problema che vedo nel codice è che u appena scritto riproduzione automatica. Dovrai renderlo autoplay = true;