如何强制用户在进入网站之前观看视频


How can I force a user to view a video before entering website?

我正在寻找一种解决方案,可以在进入网站之前加载视频以供观看。观看视频时,将有一个简单的注册表,其中包含两个字段,如果提交,将允许跳过视频。

我可以检查 SESSION 变量,如果未查看,则可以从任何页面重定向到视频页面......问题是我需要以某种方式检测视频结束事件或类似的东西,然后在视频末尾设置一个 SESSION 变量。

该网站基于Joomla,我也可以使用自定义PHP解决方案。

如果您使用youtube来显示视频,则可以使用youtube api来实现这一点。

<div id="player"></div>
    <script src="http://www.youtube.com/player_api"></script>
    <script>
        // create youtube player
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
              height: '390',
              width: '640',
              videoId: '0Bmhjf0rKe8',
              events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
              }
            });
        }
        // autoplay video
        function onPlayerReady(event) {
            event.target.playVideo();
        }
        // when video ends
        function onPlayerStateChange(event) {        
            if(event.data === 0) {          
                alert('done');
            }
        }
    </script>

event.data === 0后,您可以判断视频已完成,并且可以重定向回您的页面或其他内容。

请检查一下...

检测 HTML5 视频何时完成

你只需要放一个窗口.location = 'http://seusite.com';

在结束事件中..

很简单,你确实需要提供有关视频来源的更多信息?

猜YouTube是要走的路,所以这是你的说明,我建议在问之前尝试一些东西,因为你在这里发布了家庭作业,这不是问题!

你只需要pingYouTube的API服务:

function onPlayerStateChange(evt) {       
       if (evt.data == 0){
       alert (player.getDuration())
     }
 }

在这里,您可以根据一些规则设置会话,在此处获取有关此 API 的更多信息https://developers.google.com/youtube/js_api_reference

如果您将自己的 HTML5 视频与自己的播放器一起使用

   $('video#test-vid').bind("progress",function(e){
        console.log(e.total + ' ' + e.loaded + ' ' + e.lengthComputable );
    });

在此之后,特定用户实例的 seesion 将为真,然后您可以让人们看到其余内容。

您可以尝试存储之前看过视频的用户的IP,这样您就不会再次显示它。

至于西西翁井在这里很容易解释,也很难解释:

基本上在设置会话之前,请确保您有

session_start();   // before thinking of ending or setting sessions
$_SESSION['seen_video'] = $result;