Frage

Ich bin gerade eine TV-Show auf Hulu.com (die btw ist, die absolute beste Streaming-Video-Website um), und ob ich meinen Browser, schalten Sie vom Internet zu schließen, und auch wenn ich neu starten, meinen Computer in der Mitte eine Show zu beobachten, das nächste Mal, wenn ich auf ihrer Seite zu gehen, kann ich den Fernseher wieder aus genau der Zeit, wo ich in der Show aufhörte.

Meine Frage ist, aus einer detaillierten Web-Programmierung Perspektive, wie sie das erreichen? Ich nehme an, es ist nicht Sitzungen verwenden, weil ich glaube nicht, dass das funktionieren würde, wenn ich meinen Computer neu gestartet. Wenn es mit Hilfe von Cookies, dann wie können sie ständig das Cookie mit Ihrem Standort in einer Show aktualisieren?

Um die beigefügten Prämie zu erhalten, wenden Sie sich bitte Code-Beispiele in vorzugsweise Java / JSP (PHP ist auch ok) umfassen, wie das Cookie zu erstellen und einen Ausschnitt von serverseitigen Code, der für die aktualisierte Betrachters Position ermöglichen würde.

Danke!

War es hilfreich?

Lösung

Eine einfache Möglichkeit ist, dass der Spieler Ihre Cookie aktualisieren können (s) via JavaScript, und dass JavaScript-Funktion aufgerufen werden kann jedes n Sekunden durch den 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>

In der Flash-Player können mit Actionscript JavaScript aufrufen häufig eine ziemlich genaue Aktualisierung zu bekommen, wo der Spieler war das letzte Mal das Cookie gesetzt wurde. Jedes Mal, es heißt, es überschreibt das Cookie mit aktualisierten Daten:

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

Wenn Sie die Seite erneut, das erste, was der Server tut, ist zu überprüfen, um zu sehen, wenn Sie ein Cookie „Hulu {ID von Video}“ genannt, und wenn ja, wird der Wert dieses Cookie ist die Position letztes Mal eingestellt Sie waren Betrachten es.

Auch hier (wie eingangs erwähnt) ist dies eine sehr einfache Art und Weise zu tun, was Sie fragen. Ich finde, der beste Weg, mit einer einfachen Implementierung gehen zu lernen und dann Komplexität hinzufügen, sobald der einfachere Fall ist gut verstanden. Hulu macht wahrscheinlich regelmäßige Updates hinter den Kulissen mit AJAX. (In der Tat, wenn Sie beobachten den Netzverkehr, während ein Video ansehen etwas mit wie Firebug , werden Sie gelegentlich Anrufe sehen http://t2.hulu.com/v3/playback/position?...).

Andere Tipps

Flash hat seinen eigenen Cookie-ähnlichen Mechanismus. Local Shared Object

Es gibt einige Codebeispiele hier . Ich stelle mir vor Hulu schafft nur eine LSO und in regelmäßigen Abständen aktualisiert er mit der Position im Film. Wenn der Film nächstes geladen wird, kann es die LSO erhalten und die Position wiederherzustellen. Alternativ könnten sie eine eindeutige ID speichern und die Positionen serverseitige speichern.

Sie können ein Cookie mit einiger Datensatz-ID schreiben, dann Laden, wo Sie waren, als Sie Ihre Sitzung auf dem Server ging. Sie können wissen, wo Sie mit dem Client sind alle ein ack zurückschicken so oft vor, dass sagt: „Ja, ich zu der Zeit T gespielt habe.“

Wenn Sie dann wieder verwenden sie die Rekord-ID im Cookie in ihrer Datenbank nachzuschlagen, wo Sie waren. Es spielt keine Rolle, wie Sie trennen, wissen, dass sie immer noch die Verbindung ging.

Ich kann nur raten, aber sie speichern wahrscheinlich die Position auf der Serverseite. Wenn Sie gehen, um etwas wieder aufnehmen zu beobachten, sendet er die letzte aufgezeichnete Position als Fortsetzungs von Zeitstempeln?

Die Seite, die Sie wahrscheinlich gelegentlich sind sendet Statuspakete zurück an den Server, ist es Ihre aktuellen Zeitstempel zu erzählen. Wenn die Verbindung unterbrochen wird, wird der zuletzt aufgezeichnete Wert verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top