Hola, estoy trabajando en un reproductor de videos en localhost, tengo un archivo php que es una funcion que al llamarlo con JSON al ejecutarse me lee un directorio y me devuelve una lista de los archivos con formato "webm". El reproductor es bien tonto, al terminar de reproducirse la lista se vuelve a ejectuar la funcion php para dar comienzo nuevamente al bucle y asi hasta el fin de los tiempos.
Mi problema es que me di cuenta que al iniciar los videos el reproductor le come los primeros segundos a cada uno. Estoy con la herramienta de desarrolladores que incluye el chrome y al cargar los videos me sale en la columna Status el codigo "206 - Partial Content". Buscando encontre que corresponde a la carga de archivos grandes, que los ubica pero no los carga completamente. Adjunto mis codigos:
Este es el reproductor:
Código HTML:
<!DOCTYPE html>
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
<video id="reproductor" width="100%" muted></video>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function(){
$.ajax({
url: "funcion_array.php",
dataType: "JSON"
}).done(function(respuesta){
var reproductor = document.getElementById("reproductor"),
videos = respuesta;
reproductor.src = videos[0];
reproductor.play();
reproductor.addEventListener("ended", function(){
var nombreActual = this.src.substr(this.src.lastIndexOf("/") + 1);
actual = videos.indexOf(decodeURIComponent(nombreActual));
if (actual == videos.length - 1)
window.location = "videos.html";
else{
this.src = videos[++actual];
this.play();
}
}, false);
});
})();
</script>
</body>
</html>
Funcion PHP que me devuelve la lista de videos:
Código:
<?php
// ------------------- FUNCION QUE RETORNA UN ARRAY CON LOS NOMBRES DE LOS VIDEOS ------------------ //
function showFiles($path){
$dir = opendir($path);
$files = array();
while ($current = readdir($dir)){
if( $current != "." && $current != "..") {
if(is_dir($path.$current)) {
showFiles($path.$current.'/');
}
else {
if(eregi(".*\.webm", $path.$current)){
$files[] = $current;
}
}
}
}
return $files;
}
// ---------------------- CODIFICACION DEL ARRAY ---------------------- //
$directorio = getcwd();
$dir = showFiles($directorio);
echo json_encode($dir);
?>
Si a alguien se le ocurre que puede llegar a ser o como solucionarlo me ayudaria muchisimo. Desde ya muchas gracias. Un saludo.
Braian