我拥有一个激励网站,用户可以在其中完成优惠并获得购买商品的积分。我正在寻找一种方法来实现视频。用户一直观看视频并获得一定数量的积分到他们的帐户。该站点使用PHP,并且我的数据库中有一个用户表,用于跟踪用户点。
知道如何检查用户是否观看了视频?
谢谢!
答案 0 :(得分:4)
如果您只想捕获Youtube嵌入式播放器中的事件,请查看有关Subscribing to events的JS API文档。还有一个list of events你可以听。
答案 1 :(得分:2)
你可以尽力避免作弊,但你仍然不会抓住每一个最后的骗子,因为它总是可以欺骗客户端软件。
实时流式传输视频(您可以控制流式带宽,以便无法一次性下载整个视频),例如从服务器端脚本中流式传输,并在流式传输整个视频时记下视图。
但是,总是有可能作弊。用户可以编写一个假装成访问者的脚本并在后台“查看”视频。您可以尝试通过某种加密或混淆来防止这种情况,但总是可以规避,因为用户可以根据自己的意愿控制客户端。用户可能仍然只是将扬声器静音并在最小化的窗口中播放视频。你无法完美地控制它,虽然你可以利用JavaScript中的blur
事件来暂停视频(在这种情况下,也可以向服务器发送信号并暂停流式传输)。他们仍然可以离开计算机(但这可能不常见,而且您的付费客户肯定会知道并考虑到这种风险)。
答案 2 :(得分:1)
您可以使用EventListener。您可以捕获视频启动的时间。然后,您可以在EventListener“已结束”功能中再次捕获它,之后您将计算观看时间,而不是跳到视频结束。如果视频时间和观看时间相同,您可以在php上发布他观看过的电影。
答案 3 :(得分:0)
“结束”事件应该是您正在寻找的事情。
<!DOCTYPE html>
<html>
<head>
<title></title>
<link type="text/css" href="style.css" rel="stylesheet"/>
</head>
<body>
<video id="movie" src="movie.mov" autoplay="true"></video>
<script>
document.getElementById("movie").addEventListener("ended", function(){alert("all done")}, true);
</script>
</body>
</html>