2011-06-04 17 views
9

Tengo un jPlayer (reproductor de canciones HTML5 con jquery) y comienza a reproducir una canción de xx segundos de una canción.Cómo evitar el almacenamiento innecesario en búfer en jPlayer

Pero el problema es que tiene que primero almacenar en búfer los XX segundos y luego comienza a jugar, lo que es una pérdida de ancho de banda. ¿Por qué no comienza su almacenamiento en búfer desde XX segundos?

Aquí está el código que utilizo:

$("#jquery_jplayer_1").jPlayer({ 
     ready: function() { 
      $(this).jPlayer("setMedia", { 
      mp3: playList[0], 
      volume: CUR_VOL 
      }).jPlayer("play", 251); 
     }, 
     swfPath: "js", 
     supplied: "mp3", 
     errorAlerts: false 
     }); 

EDITAR

quería una respuesta para evitar el almacenamiento temporal de los primeros segundos XX.

+0

Puede evitar esto teniendo un pequeño búfer (no sé si es una limitación del flash). Trabajé en un video en el sitio demad hace algún tiempo y los desarrolladores que construyeron el reproductor tuvieron que hacer algunas pruebas para encontrar el equilibrio adecuado para el tamaño del búfer, ya que un búfer pequeño puede causar problemas en conexiones de baja velocidad. – Augusto

+0

que atributo debo usar? Miré hacia arriba en la documentación y no pude encontrar ninguna opción para establecer valores de almacenamiento en búfer. – footy

+0

Lo siento, no tengo idea de qué usar en jplayer, ya que construimos un reproductor de video personalizado. Solo intentaba señalarte una posible solución. – Augusto

Respuesta

6

Es el flash polyfill que necesita amortiguar. Los navegadores antiguos que no son compatibles con HTML5 <audio> sufrirán este problema, donde en su lugar se utiliza la recuperación de flash jPlayer.

Su servidor web debe ser compatible con la búsqueda de una transmisión.

Ver this jPlayer Google Group pregunta sobre búfer y Seeking through a streamed MP3 file with HTML5 <audio> tag & https://groups.google.com/forum/#!topic/jplayer/irSrmN0aUSU para una discusión sobre la búsqueda y Accept-Ranges cabeceras.

Edit: He hecho algo de investigación sobre este problema y hellip; aunque lamento que todavía no tenga una respuesta final.

En primer lugar, el jPlayer Development Guide detalla los problemas con .mp3 files and the Accept-Ranges header. Si utiliza Chrome, puede ver el encabezado de solicitud y respuesta de Rangos aceptados, si presiona F12 y selecciona la pestaña Redes. Al hacer clic en el archivo .mp3, puede inspeccionar los encabezados. La buena noticia es que parece que su servidor admite el encabezado Aceptar rangos. Sin embargo, todavía no explica por qué a veces necesita amortiguar la descarga primero.

Creo que deberías comenzar con una demo simple, sin flash y una sola .mp3. Su lista de reproducción se genera aleatoriamente por lo que es difícil determinar si el problema es solo para ciertos archivos. Además, he usado el jPlayer Inspector que puede proporcionar estadísticas detalladas para jPlayer que pueden ayudar a diagnosticar el problema.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> 
    <script src="jQuery.jPlayer.2.0.0/jquery.jplayer.min.js" type="text/javascript"></script> 
    <script src="jQuery.jPlayer.2.0.0/jquery.jplayer.inspector.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function(){ 
      $('#jplayer').jPlayer({ 
       ready: function() { 
        $(this).jPlayer('setMedia', { 
         mp3: 'mp3/example.mp3' 
        }); 
       }, 
       swfPath: 'not_a_valid_directory', 
       solution: 'html, flash', 
       supplied: 'mp3' 
      }); 

      $('#jplayer_inspector').jPlayerInspector({jPlayer:$('#jplayer')}); 

      $('#seeker').click(function() { 
       $('#jplayer').jPlayer('play', 20); 
       return false; 
      }); 
     }); 
    </script> 
</head> 
<body> 
<div id="jplayer"></div> 
<a href="#" id="seeker">Play 20s from start</a> 
<div id="jplayer_inspector"></div> 
</body> 
</html> 

También puede cambiar el código de demostración anterior para incluir:

swfPath: 'jQuery.jPlayer.2.0.0', 
solution: 'flash, html', 

en el constructor jPlayer para forzar Flash para ser el reproductor por defecto.

+0

Hola, no estoy usando un navegador más antiguo. Los últimos Chrome/Opera/IE los almacenan en búfer. Por favor, compruebe mi reproductor desplegado aquí ... www.uttarakhandradio.com en cualquier navegador ... todavía almacena en búfer ... un poco nuevo y aprendiendo así que ¿cómo comprobar si mi servidor admite este almacenamiento en búfer o no? Estoy usando un archivo mp3 que debe ser capaz de transmitir, ¿verdad? – footy

+0

Echaré un vistazo a su sitio. – andyb

+0

gracias. Podrías por favor hacer eso. aplausos :) – footy

Cuestiones relacionadas