2011-12-12 83 views
1

我拥有一个激励网站,用户可以完成优惠并获得积分购买物品。我正在寻找一种实现视频的方式。用户一直观看视频并获得一定数量的点数给他们的帐户。该网站是在PHP中,并且我的数据库中有一个用户表,用于跟踪用户点。跟踪用户是否观看了视频并奖励他们。

任何想法如何检查用户是否观看过视频?

谢谢!

+0

你问他们是否看过视频?或观看整个视频? –

+0

我认为你可以期望的最好的是用户播放了整个视频 - 谁知道他们是否真的坐在那里看着它。 –

+1

只需在不同的时间向视频添加一些非常简单的事实,并询问用户。如果他知道答案,他必须观看视频或查看事实。为了防止后者,你必须动态生成视频。 – Bergi

回答

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> 
+0

如果他们跳到视频的末尾怎么办? – Josh

+0

除了Emil在下面提出的建议之外,可能还会运行一个计时器,该计时器在电影结束前约5秒结束,可用于确保观看整个视频。但是,如前所述,实现这一点并不是万无一失的。例如, –

+0

可以说它是一个YouTube视频。我所关心的只是如果他们在视频的开头观看广告,他们是否真的关注内容是无关紧要的。有什么方法检查用户是否点击了嵌入式Flash播放器?例如, – Deekor

2

你可以竭尽全力,试图防止作弊,但你还是不会把每一个骗子在那里,因为它总是能够欺骗客户端软件。

实时流式传输视频(您可以控制流式传输带宽,因此无法一次下载整个视频),例如从服务器端脚本中获取视频,并在整个视频流式传输时记录视图。

虽然它总是会有可能作弊。用户可以编写一个脚本,只是假装成一个访问者并在后台“查看”该视频。您可以尝试通过使用某种加密或模糊处理来防止这种情况发生,但总是有可能避开,因为用户可以按照他们认为合适的方式控制客户端。

用户可能仍然只是将其扬声器静音并以最小化的窗口播放视频。尽管maye可以利用JavaScript中的blur事件来暂停视频(在这种情况下,还向服务器发送信号并暂停流式传输),但无法完美控制这一点。尽管如此,他们仍然可以离开电脑(但这可能并不常见,您的付费客户肯定会知道并已经考虑过这种风险)。

+0

可以说它是一个YouTube视频。我所关心的只是如果他们在视频的开头观看广告,他们是否真的关注内容是无关紧要的。有什么方法检查用户是否点击了嵌入式Flash播放器? – Deekor

1

您可以使用EventListener。您捕捉视频开始的时间。然后,您可以在EventListener“已结束”功能中再次捕获它,然后计算观看时间,避免跳过视频结束。如果视频时间和观看时间相同,您可以发布到您的PHP,他看过那部电影。

+0

至少和减去一定数量可能是最好的;确切的时间可能很难实现。 –