我正在寻找一种在进入网站之前加载视频以供观看的解决方案。观看视频时,将有一个简单的注册表单,其中包含两个字段,如果提交将允许跳过视频。
我可以检查一个 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
您知道视频已完成并可以重定向回您的页面或其他内容之后。
这很简单,您是否需要提供更多关于您的视频来源的信息?
我猜 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;