Domanda

sto guardando uno show tv su Hulu.com (che è btw, il miglior sito di streaming-video assoluta in giro) e se chiudo il browser, disconnettersi da Internet, e anche se riavviare il computer in mezzo di guardare uno spettacolo, la prossima volta che vado al loro sito, posso riprendere la tv dal esattamente il tempo in cui ho lasciato nello spettacolo.

La mia domanda è da un punto di vista dettagliata programmazione web, come possono raggiungere questo obiettivo? Presumo che non sta usando le sessioni, perché non credo che funzionerebbe se ho riavviato il computer. Se si sta usando i biscotti, allora come possono aggiornare costantemente il cookie con la vostra posizione in uno spettacolo?

Al fine di ricevere la grazia in allegato, si prega di includere esempi di codice in preferibilmente Java / JSP (PHP è ok troppo) su come creare il cookie e un frammento di codice lato server che permetterebbe per la posizione dello spettatore aggiornato.

grazie!

È stato utile?

Soluzione

Un modo semplice è che il giocatore può aggiornare il cookie (s) tramite JavaScript, e che la funzione JavaScript può essere chiamato ogni n secondi da Flash Player:

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

Nel Flash player, ActionScript può invocare il JavaScript frequentemente per ottenere un aggiornamento abbastanza precisa di dove il giocatore era l'ultima volta che il cookie è stato impostato. Ogni volta che si chiama, sovrascrive il cookie con i dati aggiornati:

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 tornate alla pagina, la prima cosa che il server non è controllare per vedere se si dispone di un cookie chiamato "Hulu {ID video}" e in tal caso, il valore di tale cookie è la posizione impostata ultima volta che sono stati visualizzazione.

Anche in questo caso (come detto all'inizio) questo è un modo molto semplice per realizzare quello che stai chiedendo. Trovo il modo migliore per imparare è quello di andare con una semplice implementazione e quindi aggiungere la complessità una volta che il caso più semplice è ben compreso,. Hulu probabilmente rende gli aggiornamenti periodici dietro le quinte che utilizzano AJAX. (In realtà, se si guarda il traffico di rete mentre si guarda un video utilizzando qualcosa come Firebug , vedrete le chiamate occasionali a http://t2.hulu.com/v3/playback/position?...).

scroll top