Pergunta

Eu estou assistindo a um programa de TV no Hulu.com (que é btw, o best-streaming de vídeo site em torno absoluto) e se fechar o navegador, se desconectar da internet, e mesmo se eu reiniciar o meu computador no meio de assistir a um show, na próxima vez que eu vá para o seu site, eu posso retomar a tv a partir exatamente o tempo onde parei no show.

A minha pergunta é a partir de uma perspectiva detalhada de programação web, como eles podem conseguir isso? Presumo que não está usando sessões, porque eu não acho que isso iria funcionar se eu reiniciado o meu computador. Se ele está usando cookies, então como podem atualizar constantemente o cookie com a sua localização em um show?

Para receber a recompensa ligada, por favor inclua exemplos de código de preferência Java / JSP (PHP é ok também) de como criar o cookie e um trecho de código do lado do servidor que permitiria a posição do espectador atualizado.

Obrigado!

Foi útil?

Solução

Uma maneira simples é que o jogador pode atualizar seu cookie (s) via JavaScript, e que a função JavaScript pode ser chamado a cada n segundos pelo jogador de inflamação:

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

No leitor de Flash, ActionScript pode chamar o JavaScript freqüência para obter uma atualização bastante precisa de onde o jogador foi a última vez que o cookie foi definido. Cada vez que ele é chamado, ele substitui o cookie com dados atualizados:

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

Quando você revisitar a página, a primeira coisa que o servidor faz é verificar para ver se você tem um cookie chamado "Hulu {ID de vídeo}" e em caso afirmativo, o valor desse cookie é a posição definida última vez que esteve visualizá-lo.

Mais uma vez (como indicado no início) esta é uma maneira muito simples de realizar o que você está pedindo. Acho que a melhor maneira de aprender é ir com uma implementação simples e, em seguida, adicionar complexidade uma vez que o caso mais simples é bem compreendido. Hulu provável faz atualizações periódicas por trás das cenas usando AJAX. (Na verdade, se você prestar atenção ao tráfego net enquanto assiste a um vídeo usando algo como Firebug , você verá chamadas ocasionais para http://t2.hulu.com/v3/playback/position?...).

scroll top