php设置计时器,然后调用函数

php设置计时器,然后调用函数,php,timer,youtube,Php,Timer,Youtube,我有一个youtube视频,它的持续时间以秒为单位,我想为该视频设置一个计时器,一旦完成,然后调用一个具有不同视频的函数。到目前为止,我得到的是: $ytvidid = 'qasCLgrauAg'; $ytdataurl = "http://gdata.youtube.com/feeds/api/videos/". $ytvidid; $feedURL = $ytdataurl; $sxml = simplexml_load_file($feedURL); $media = $sxml->

我有一个youtube视频,它的持续时间以秒为单位,我想为该视频设置一个计时器,一旦完成,然后调用一个具有不同视频的函数。到目前为止,我得到的是:

$ytvidid = 'qasCLgrauAg';
$ytdataurl = "http://gdata.youtube.com/feeds/api/videos/". $ytvidid;
$feedURL = $ytdataurl;
$sxml = simplexml_load_file($feedURL);
$media = $sxml->children('http://search.yahoo.com/mrss/');
// get <yt:duration> node for video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
$length = $attrs['seconds'];

由于某种原因,这不起作用……我做错什么了吗?我也尝试过javascript window.setInterval(…),但在下一个视频加载时重置间隔也不起作用。非常感谢您的帮助:)

对于
16秒的延迟,您必须使用

usleep($length * 1000000);  // 1000000 == 1 second

既然你在处理秒(不是微秒),你可能会考虑使用而不是.< /P> < P> OK,经过几个小时的阅读,我发现我想完成的事情不能用PHP的睡眠或UpEclipse函数来完成。所以我最终用javascript实现了它:

<script type="text/javascript">
var id = 1;
next(id);
var t;
function setValue(time, rowid)
{

    id = rowid;
    t = setInterval(cleartime, time * 1000);    
}

function cleartime()
{
    clearInterval(t);
    next(parseInt(id, 10));
}
function next(id){
    //this gets values and calls the setValue function again        
}
</script>

var-id=1;
下一个(id);
变量t;
函数设置值(时间,行ID)
{
id=rowid;
t=设置间隔(清除时间,时间*1000);
}
函数cleartime()
{
净间隔(t);
下一步(parseInt(id,10));
}
下一个功能(id){
//这将获取值并再次调用setValue函数
}

Thank更改了它,但它没有等待16秒来调用该函数,而是立即调用该函数。。
<script type="text/javascript">
var id = 1;
next(id);
var t;
function setValue(time, rowid)
{

    id = rowid;
    t = setInterval(cleartime, time * 1000);    
}

function cleartime()
{
    clearInterval(t);
    next(parseInt(id, 10));
}
function next(id){
    //this gets values and calls the setValue function again        
}
</script>