我正在开发一个PHP应用程序,我在我的网站上播放YouTube视频。每个视频的URL,start_time和end_time都存储在数据库中,每30秒后,如果current_time在任何行的start_time和end_time之间,则检查数据库中的所有值,如果是,则从该行获取URL并开始视频。
$retrieval = "select * from video where user_id=$id AND prog_id=$p";
$result= mysqli_query($db,$retrieval);
if(mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
$fromTime = strtotime($row['start_time']);
$toTime = strtotime($row['end_time']);
$inputTimeT = strtotime($currTime);
if($inputTimeT >= $fromTime and $inputTimeT <= $toTime){
$url = $row['video_url'];
if(preg_match('/https:\/\/(www\.)*youtube\.com\/.*/',$url)){
// Fetch YouTube VideoID from URL
preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match);
$youtube_id = $match[1];
?>
<iframe class="mainvideo" src="https://www.youtube.com/embed/<?php echo $youtube_id?>?autoplay=1&loop=1&playlist=<?php echo $youtube_id?>" frameborder="0" allowfullscreen></iframe>
<?php
}
else{?>
<video width="100%" src="<?php echo $row['video_url']?>" controls loop autoplay>
<!--ALTERNATE VIDEOS -->
</video>
<?php }
}
}
}
如果我每分钟刷新一次页面,视频将从开始播放(如果时间不到)。 我希望每分钟都执行此操作,而无需重新加载页面,也无需重新加载当前播放的YouTube视频(如果时间不到时)。如果可能,请为此问题提供可能的解决方案。
P.S。我已经验证了存储到数据库时的开始和结束时间,因此每个视频都有独特的开始和结束时间,并且它们不会超载。
答案 0 :(得分:0)
无论什么时候想要在不重新加载负载的情况下获取数据,AJAX都可以提供帮助。
我会做什么(不知道最佳做法,甚至是不良做法)是: