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

时间:2013-09-09 05:11:25

标签: php video joomla

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

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

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

3 个答案:

答案 0 :(得分:0)

请检查一下......

Detect when an HTML5 video finishes

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

在END事件中

..

答案 1 :(得分:0)

如果您使用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之后,您可以判断该视频已完成,并且可以重定向回您的网页或

答案 2 :(得分:0)

这很简单,你需要提供更多关于视频来源的信息吗?

我猜youtube是要走的路,所以这里有你的指示,我建议在问之前先尝试一下,因为你在这里发了功课,而不是问题!

您只需要为youtube API ping服务:

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 );
    });

在此之后,特定用户实例的视图将成立,然后您可以让人们看到其余内容。

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

至于隔离井这里很容易解释:

基本上在设置会话之前确保你有

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