0

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

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

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

4

3 回答 3

1

如果您使用 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您知道视频已完成并可以重定向回您的页面或其他内容之后。

于 2013-09-09T05:27:02.027 回答
0

请检查一下...

检测 HTML5 视频何时结束

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

在 END 事件中..

于 2013-09-09T05:23:27.987 回答
0

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

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

您只需要 ping youtube 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 );
    });

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

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

至于会议井在这里很容易也很难解释:

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

session_start();   // before thinking of ending or setting sessions
$_SESSION['seen_video'] = $result;
于 2013-09-09T05:27:54.250 回答