Pregunta

Estoy viendo un programa de televisión en Hulu.com (lo cual es cierto, absolutamente el mejor sitio de streaming de vídeo alrededor) y si cerrar el navegador, desconectarse de Internet, e incluso si lo reiniciar mi equipo en el medio de ver un espectáculo, la próxima vez que vaya a su sitio, para que pueda reanudar la televisión exactamente desde el momento en que lo había dejado en el espectáculo.

Mi pregunta es, desde una perspectiva detallada de programación web, ¿cómo pueden lograr esto? Asumo que no está usando sesiones porque no creo que eso funcionaría si me reinicia el ordenador. Si se trata de utilizar las cookies, entonces ¿cómo pueden actualizar constantemente la cookie con su ubicación en un espectáculo?

Con el fin de recibir la recompensa adjunto, por favor incluya ejemplos de código de preferencia de Java / JSP (PHP está bien también) de cómo crear la cookie y un fragmento de código del lado del servidor que permita la posición del espectador actualizada.

Gracias!

¿Fue útil?

Solución

Una forma simple es que el jugador puede actualizar su cookie (s) a través de JavaScript, y que la función JavaScript puede ser llamado cada n segundos por el jugador de inflamación:

<script type="text/javascript">
    function UpdateViewData(videoId, time)
    {
        //for a video with id 12345, sets a cookie called:
        //hulu12345 with a value of the position
        var cookieData = 'hulu' + videoId + '=' + time + '; expires=' + getDate() + ';path=/';
        document.cookie = cookieData;
    }
</script>

En el reproductor de Flash, ActionScript puede invocar el JavaScript frecuencia para obtener una actualización bastante exacta de donde estaba la última vez que se establece la cookie al jugador. Cada vez que se llama, sobrescribe la cookie con los datos de actualización:

import flash.external.ExternalInterface;

//in flash video player code,
//have variables for video ID and current player position
//every 5 seconds, call:
ExternalInterface.call("UpdateViewData", videoId, currentPlayerPosition);

//this will invoke a JS function on the host page named "UpdateViewData"
//and pass in the provided arguments

Cuando se vuelve a visitar la página, lo primero que el servidor hace es comprobar para ver si tiene una cookie denominada "Hulu {ID de vídeo}" y si es así, el valor de esa cookie es la posición establecida última vez que estuvo verlo.

Una vez más (como se indica en el principio) se trata de una forma muy sencilla de lograr lo que preguntas. Creo que la mejor manera de aprender es ir con una implementación simple y luego añadir complejidad vez el caso más simple se entiende bien. Hulu probable que hace que las actualizaciones periódicas detrás de las escenas usando AJAX. (De hecho, si se observa el tráfico en la red mientras ve un vídeo usando algo como Firebug , verá llamadas ocasionales a http://t2.hulu.com/v3/playback/position?...).

scroll top