2012-10-06 9 views
5

He configurado un servidor IceCast2 que es capaz de reproducir ogg o mp3, ambos a 192 kbps.Reproducción de música de transmisión se detiene cuando una nueva canción comienza a usar la etiqueta de audio html5 en Chrome y Firefox

en el código HTML que utilizo:

<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> 

Pero en Chrome 22/Firefox 13 cada vez que se inicia una nueva canción, el reproductor detiene la reproducción. En IE10 continúa jugando sin ningún problema. Estoy pensando que esto podría tener algo que ver con el hecho de que Chrome y Firefox usan la fuente de ogg mientras que IE usa mp3. Parece que también hay un problema con Opera 12 cuando se reproducen 192 kbps (la música se escucha saccada), cambié a 128 y luego funcionó con fluidez.

¿Alguien sabe una solución para esto?

Gracias por su ayuda!

+1

¿Tiene usted que buscar en un oyente de eventos que espera 'finalizó' Esto es bastante útil: [html5 audio el estado del juego] (http://html5doctor.com/html5-audio-the-state-of-play/# eventos), Siempre se puede activar la siguiente pista una vez que la primera pista ha finalizado – Eruant

+0

gracias por el enlace, esto es muy bueno: http://jplayer.org/HTML5.Media.Event.Inspector/ –

Respuesta

4

Publicando esto como un hack temporal hasta que alguien dé una mejor respuesta.

En Chrome MEDIA_ERR_DECODE se lanza cuando la reproducción se detiene, mientras que en Firefox simplemente se detiene sin ningún error.

he cambiado el src-currentSrc y luego llama play() en onerror y onended evento, pero el sonido se interrumpe algunas veces antes de reanudar el juego. Debe haber una mejor manera.

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

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

Răzvan: ¿alguna vez descubriste por qué tus transmisiones hacen esto? Estoy teniendo el mismo problema, y ​​creo que si el problema estuviera en las transmisiones .ogg en general, estaría mejor documentado que las dos preguntas SO que he encontrado. – Dmitri

+0

@Dmitri: No encontré nada nuevo. Supongo que tiene que ver con lo que se implementó con respecto al audio html5 en los navegadores en los que no funciona. –

+0

este hackeado me salvó. He estado averiguando cómo solucionarlo en Chrome. Estaba buscando un reproductor basado en flash pero la mayoría no funcionaba. – JavaDev

-1

No tiene que hacer mucho de lo mencionado anteriormente^el único problema que veo en su código es que acaba de escribir la reproducción automática. Tendrás que hacer que sea autoplay = verdadero;

Cuestiones relacionadas