如何在页面刷新时继续制作Youtube视频

时间:2014-03-08 18:17:20

标签: javascript jquery html ajax youtube

我想知道是否可以保存当前的 Youtube 视频位置,当页面刷新时,视频会从最后一个位置开始,而不是从头开始重启。

使用cookie保存最后一个位置或使用GET。实际上是我的网站 由于我的页面在后台调用,因此网站不会经常刷新 将Ajax替换为div,但如果用户刷新页面,则 音乐将从一开始就开始,但我宁愿让它继续在刷新前的位置。


我在这里做了什么:

PHP将在param start =

之后将cookie打印到这样的url中
<embed src="http://www.youtube.com/v/sIR3KAfhqZQ?version=3&autoplay=1&start=<?php print($_COOKIE['YTTIME']); ?>

然后在javascript中我设置了一个持续保存整数(秒)cookie的超时。

var YTT   = parseInt(getCookie("YTTIME")); // Current Video Time
var YTTL  = 802;                 // Total video length in seconds

function SaveYTTIMEtoCookie() {
    setTimeout(function(){

        if (YTT < YTVL) YTT++;   // If current time is smaller than the maximum length
        else YTT = 0;            // Or restart to 0

        setCookie("YTTIME", YTT, 1); // SetCookie is a custom function
        SaveYTTIMEtoCookie();        // Loop the SetTimeout every 1 second.
    },1000);
}

如何在JS中保存cookie:w3schools 如何在JS中设置Timeout:w3schools

  

但是同时打开2个或更多窗户会搞砸了   通过在每个页面的cookie中添加+1 ...:/任何解决方案?

1 个答案:

答案 0 :(得分:2)

您可以将时间以秒为单位写入URL,以便在特定时间开始

http://www.youtube.com/watch?v=8SbUC-UaAxE#t=170

t是从一开始就以秒为单位的时间。

如果您使用的是API,那么您可以跟踪它们在视频中的当前距离,然后使用此值重新加载它。

但是你必须不断地在JS中写入cookie或localstorage,然后在几秒钟内重读该值。