0

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

4

3 回答 3

0

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

如果这不是您想要实现的目标,那么应该这样做:

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

这将创建一个名为的 cookie autoplay,由于第四个参数,该 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是否真实。

于 2015-09-02T02:54:16.733 回答
0

由于您不熟悉如何使用cookies,请查阅有关cookies的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>"
于 2015-09-02T02:34:29.870 回答
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");
    }
});
于 2021-03-13T13:36:25.830 回答