我看到一个电视秀上Hulu.com (这是顺便说一句,绝对是最好的流视频的网站周围),以及是否我闭上我的浏览器、断路从互联网上,甚至如果我重新启动我的电脑在中间看一个节目,下一次我去他们的站点,我可以恢复视从确切的时间里,我离开的。

我的问题是从一个详细的网方案规划角度看,他们如何实现这一目标?我假定这是不使用的会议,因为我不认为那会的工作,如果我重新启动我的电脑。如果它使用的饼干,那么他们怎么可以不断更新的饼干你的位置在一个节目吗?

为了收到所附的奖金,请包括码的实例,在最好的Java/JSP(PHP是确定)如何创建cookie和一段的服务器方代码,允许用于更新后者的位置。

谢谢!

有帮助吗?

解决方案

一个简单的方法是,可以更新你的饼干(s)通过JavaScript,JavaScript功能上可以称之为每 n 几秒钟的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>

在闪播放机、脚本可以调用的JavaScript经常得到一个相当准确的更新的玩家是最后一次的cookie。每次它就是所谓的,它复盖的饼干与更新的数据:

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

当你重新审视页,第一件事的服务器不是检查看看你有所谓的"葫芦{ID的视频}"如果是这样,值得饼干的位置你最后一次查看。

再次(正如在开始),这是一个非常简单的方法来完成你所要求。我找到最好的学习方式是与一个简单的执行和后添加复杂的一次简单的情况下是很好的理解。葫芦可能使得定期更新的幕后使用的AJAX。(事实上,如果你看的净流量,同时观看视频使用的东西喜欢 萤火虫, 你会看到的偶尔来的电话 http://t2.hulu.com/v3/playback/position?...).

其他提示

Flash有它自己的Cookie类似的机制:本地共享对象

有一些代码示例此处。我想象葫芦只是创建了一个LSO,并定期与在电影中的位置更新它。当电影被装入旁边,它可以得到的LSO和恢复的位置。或者,它们可以存储一个唯一的ID,并保存的位置的服务器端。

他们可以写一些记录ID,然后商店,你当你的会话走在服务器上是一个cookie。他们可以知道你在哪里,通过让客户每隔一段时间,说,发回ACK“是的,我对时间T播放。”

然后你回来的时候,他们使用记录ID在cookie中的数据库,在那里你要查找。不要紧,你如何断开连接,他们还是知道的连接就走开了。

我只是猜测,但他们可能存储在服务器端的位置。当你去继续观看的东西,它发出的最后记录位置的履历,从时间戳?

你可能在偶尔的页面发送状态数据包返回到服务器,告诉它你的当前时间戳。当连接被切断,最后记录的值被使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top