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