我需要能够为回访者关闭 vimeo 上的自动播放。我知道自动播放对某些人来说是不可以的,但对于我们的第一次访问者来说,我们发现它非常有帮助。但是对于那些经常光顾我们网站的人来说,他们不需要自动播放。你们中的一个可以帮我处理那个代码吗?我很确定这是一个可以解决问题的 php 代码,但它超出了我的专业水平。提前致谢!我的网站是 www.destinychurchjacksonville.com,视频在首页。
3 回答
如果您的站点有可以注册的成员,那么强烈建议您将他们的偏好存储在数据库中。
如果这不是您想要实现的目标,那么应该这样做:
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
是否真实。
由于您不熟悉如何使用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>"
以下是 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");
}
});