限制每个会话的 html5 视频显示?

Posted

技术标签:

【中文标题】限制每个会话的 html5 视频显示?【英文标题】:restrict html5 video display per session? 【发布时间】:2012-05-17 10:16:52 【问题描述】:

我想限制每个会话的视频和照片显示。例如,访问者观看了 3 个视频,当他尝试观看第四个视频时,他被重定向到订阅页面。我将使用 JWPlayer 或原生 html5,没关系,这将在 WP 中工作,但正在寻找任何方法来使用 php(无论如何我不是专家)。

因此,理想情况下,这将是工作流程: 1) 访客观看视频 1 --> 可选消息 --> 您还有 2 个视频 2) 访客观看视频2 --> 可选消息 --> 您还剩 1 个视频 3) 访客观看视频3 --> 可选消息 --> 您还剩 0 个视频 4) 访客尝试观看视频4 --> 重定向

到目前为止,我找到了限制每个带宽或每个时间的方法(仅 1 个视频,然后重定向),但我需要提供 3 个视频,无论时间或大小如何,因此这些解决方案不起作用。关于如何实现这一目标的任何想法?

编辑:这里有一些重定向代码,我真的没有添加任何东西,因为我不需要任何东西,但是看看:

<script src="text/javascript">
function vidplay()
    var video = document.getElementById('video');
    video.play();
    video.addEventListener('ended',function()
        window.location = 'http://SUBSCRIBE_PAGE';
    );

</script>
<video controls id="video"   onclick="vidplay()">
    <source src="video/video.mp4" type="video/mp4" />
</video>

【问题讨论】:

如果用户清除他们的会话怎么办? 请添加您已经尝试解决问题的任何代码。 是的,这是个问题,最好的方法是限制每个 IP 每 24 小时左右的限制,但在这一点上,我对任何事情都很满意 【参考方案1】:

在会话中存储一个计数(最好是视频 ID 列表,以便他们可以在一个会话中多次观看同一视频),这可能会因用户清除 cookie 而无效。否则,如果您的用户有一个他们必须登录的帐户,请在数据库表中存储他们所查看内容的历史记录。

编辑:现在我注意到您在这里使用 wordpress,所以我无法帮助将其添加到其中,但这是基于会话的方法的示例

<?php

// Obviously use your variable here
$ID_OF_VIDEO_HERE = $_REQUEST['video'];

if(isset($_SESSION) === false)
  session_start(); // Start PHP session management
if(isset($_SESSION['videos_viewed']) === false)
  $_SESSION['videos_viewed'] = array();

if(isset($_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE]) === FALSE AND count($_SESSION['videos_viewed']) >= 3)

  // Redirect the User
  header('location: http://SUBSCRIBE_PAGE');
  exit();

else

  // Add current video ID to list
  $_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE] = true;


// JUST FOR TESTING
var_dump($_SESSION['videos_viewed']);

?>

【讨论】:

你确实遇到了一些问题,用户 IP 可能是动态的,他们可能在 NAT 之后,清除 cookie,更改用户代理(可能不是这么多)。此外,由于会话可能只持续很短的时间,您还可以生成一个唯一 ID 并将其存储在 cookie 中,作为会话结束后的用户标识形式,并使用它来限制。显然,如果用户足够精明,他们可以清除 cookie,但您可能会阻止大多数人。 好吧,这超出了我有限的技能,会尝试找到有能力的人。如果你认为你可以做到并且有办法雇用你,就 lmk,我不确定这里有偿工作的协议是什么 谢谢你,Scuzzy,我在一个页面中尝试过,效果很好,正在将它添加到 WP,非常感谢!我可以给你投票,但如果可以的话,我会:) 另外,确保重定向只发生在查看视频的代码中,而不是在每个页面上,哦,无论如何,接受的答案更好:)

以上是关于限制每个会话的 html5 视频显示?的主要内容,如果未能解决你的问题,请参考以下文章

html5互动视频

HTML5中如何显示视频HTML5视频播放

Html5 视频不显示

HTML5 视频 + TTML 字幕不显示字幕

HTML5 视频:在视频和海报之间显示加载器/微调器

html5:在画布内显示视频