需要创建一个cookie来关闭自动播放视频给回访者

时间:2015-09-02 01:55:56

标签: php cookies joomla vimeo-player

我需要能够在vimeo上为回访者关闭自动播放功能。我知道自动播放对于某些人来说是不对的,但对于我们第一次访问者,我们发现它非常有帮助。但对于经常访问我们网站的人来说,他们并不需要自动播放。你们其中一个人可以帮我解决这个问题吗?我很确定这是一个可以解决问题的PHP代码,但它超出了我的专业水平。提前致谢!我的网站是www.destinychurchjacksonville.com,视频在头版。

3 个答案:

答案 0 :(得分:0)

由于您不熟悉如何使用Cookie,请参阅有关Cookie的PHP文档:http://php.net/manual/en/function.setcookie.php

抱歉,我对Vimeo不太熟悉,因为我总是使用Youtube。但是,我相信如果您使用PHP动态呈现iframe。您的自动播放功能将是一块蛋糕。

我检查了您网站的源代码,我相信这种格式的iFrame src链接:http://player.vimeo.com/video/xxxxxxxxx?autoplay=1。请注意链接中有一个名为autoplay的GET []变量,当cookie设置或未设置时,您可以使用PHP来操作链接。

if(isset($_COOKIE["name"])){
 $link = "http://player.vimeo.com/video/xxxxxxxxx"

} else {
 $link = "http://player.vimeo.com/video/xxxxxxxxx?autoplay=1"

}
//proceed to render iFrame with $link var.


echo "<iframe src=$link width='500' height='281' frameborder='0' webkitAllowFullScreen mozallowfullscreen allowFullScreen> </iframe>"

答案 1 :(得分:0)

如果您的网站有可以注册的成员,则建议您只将其偏好设置存储在数据库中。

如果这不是你想要达到的目标,那么应该这样做:

setcookie('autoplay', false, time() + 3600, "/");
$_COOKIE['autoplay'] = false;

这将创建一个名为autoplay的cookie,由于第四个参数,该cookie在整个站点目录中可用,并在1小时后到期。这些偏好的大多数网站可以保存80天,因此您可以使用time() + 6912000

检查是否自动播放:

<?php
if (isset($_COOKIE['autoplay']) && $_COOKIE['autoplay'] == false) {
//Don't do autoplay
?>

更好的是,如果你真的想确保任何回访的访问者都没有自动播放,那就是存储访问过你网站的任何IP address,尽管这是非常严格的,因为很多用户都不会记得他们的第一个访问,或者他们的第一次访问是一次反弹。您可以通过创建一个数据库表来执行此操作,该数据库表存储访问过您站点的所有IP地址,如果当前用户的IP地址在表中,则禁用自动播放

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT ip FROM ip_addresses WHERE ip = '$ip'";
$result = $dbc->query($sql);
if ($result->num_rows > 0) {
//Autoplay off
}
?>

您可以在此处阅读有关Cookie的信息: http://php.net/manual/en/features.cookies.php

编辑:为了完全达到你想要的效果,我还没有读过Vimeo API,但是正如另一个答案所示,自动播放是GET变量,如果这是正确的,那么你可以在网址中操作它,你可以这样做:

<?php
if (isset($_COOKIE['autoplay']) && $_COOKIE['autoplay'] == false) {
    //No autoplay
    $link = 'http://player.vimeo.com/video/xxxxxxxxx?autoplay=0';
}
else {
    //Yes autoplay
    $link = 'http://player.vimeo.com/video/xxxxxxxxx?autoplay=1';
    //Since this visitor is new and next time will be returning, create cookie
    setcookie('autoplay', false, time() + 3600, "/");
    $_COOKIE['autoplay'] = false;
}
?>
<html>
<iframe src="<?php echo $link;?>"></iframe> 
//Here we echo out the link variable we dynamically generated above in PHP based on user preferences and give it to HTML. 

如果您想要实现IP地址,您可以执行上面建议并检查表达式$result->num_rows == 1是否真实。

答案 2 :(得分:0)

以下是使用 cookie 的快速解决方案,我已经测试过,对我来说效果很好。

$(document).ready(function () {
    if ($.cookie('videocookie') == null) {
        // Create expiring cookie, 2 days from now:
        $.cookie('videocookie', 'videocookie', { expires: 2, path: '/' });
    } else{
        $(".wp-video video").removeAttr("autoplay");
    }
});