需要创建一个cookie来关闭视频的自动播放,以回访


Need to create a cookie to turn off autoplay of video to returning visitors

我需要能够关闭自动播放的回访vimeo。我知道自动播放对一些人来说是不允许的,但对于我们的第一次访问者来说,我们发现它非常有用。但是对于那些经常访问我们网站的人来说,他们不需要自动播放。你们谁能帮我弄一下密码吗?我很确定这是一个php代码,可以做的伎俩,但它是超出我的专业知识水平。提前感谢!我的网站是www.destinychurchjacksonville.com,视频在首页

由于您不熟悉如何使用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[]变量,您可以使用PHP在cookie设置或未设置时操作链接。

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>"

如果您的站点有可以注册的成员,建议您只将他们的偏好存储在数据库中。

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

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变量,如果这是正确的,你可以在url中操纵它,你可以这样做:

<?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是否为真。

以下是我测试过的使用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");
    }
});