【问题标题】:Playing video at certain point at certain time of the day在一天中的某个时间点播放视频
【发布时间】:2019-04-18 06:23:28
【问题描述】:

我正在尝试让我的视频在特定时间播放,具体取决于当天的时间。例如,如果是下午 16:12:54,我的视频将从 16:12:54 开始播放。如果是下午 16:13:00,则视频将从 16:13:00 开始,以此类推。目前它只在一天中的特定时间播放。非常感谢。

function checkTimeAndPlay() {
    var date = new Date();
    if (date.getHours() == 12 && date.getMinutes() == 0) {
        document.getElementById('video_id').play();
    } else {
        setTimeout("checkTimeAndPlay", 1000);
    }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【问题讨论】:

  • 在使用函数引用时删除引号,即setTimeout(checkTimeAndPlay, 1000); 在传递要作为字符串执行的代码时使用(),即setTimeout("checkTimeAndPlay()", 1000);
  • 如果是 16:12:54 你为什么写date.getHours() == 12
  • @Mohammad 这只是一个例子。
  • 您是否正在寻找某个时间点的搜索视频?如果是,这是一个很好的答案:stackoverflow.com/questions/10461669/… 只需使用 currentTime 属性 (developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/…)
  • @Yaroslav Bigus 这将是 24 小时视频。它可以在任何时间开始,具体取决于一天中的时间。凌晨 1 点它将开始视频的 1 小时。凌晨 2 点,它将从第 2 小时的视频开始。凌晨 3:01:02 将从视频的 3:01:02 开始。

标签: javascript jquery html5-video video-player


【解决方案1】:

您需要检查当前时间和目标时间。因此,您应该使用.getHours() 获得小时,使用.getMinutes() 获得分钟,使用.getSeconds() 获得第二个来检查它们。

function checkTimeAndPlay() {
  var date = new Date();
  // Check if time is 16:12:54
  if (date.getHours() == 16 && date.getMinutes() == 12 && date.getSeconds() == 54)
    document.getElementById('video_id').play();
  else {
    console.log("Time isn't match");
    setTimeout(checkTimeAndPlay, 1000);
  }
}
checkTimeAndPlay();

此外,如果您想播放特殊时间(当前时间)的视频,您应该更改视频的currentTime 属性。

var date = new Date();
var vid = document.getElementById("myVideo");
vid.currentTime = (date.getHours()*3600) + (date.getMinutes()*60) + date.getSeconds();
vid.play();

【讨论】:

  • 我不需要它在 16:12:54。可以是任何时间。我只希望我的视频开始时间与一天中的时间相匹配。如果是 xx:xx:xx p.m,视频将从相同的 xx:xx:xx 开始。谢谢!对不起,如果我不清楚。
  • @portalboy95 你的意思是视频从第 16 小时开始,所以你的视频应该有 24 小时的长度,浏览器应该从开始下载视频到第 16 小时开始播放
  • 是的,它将是 24 小时视频。它可以在任何时间开始,具体取决于一天中的时间。凌晨 1 点它将从 1 小时开始。凌晨 2 点它将在 2 小时开始,依此类推。
  • 所以如果我只是将它更改为当前属性,它现在会从我的时钟时间开始播放吗?时钟时间为下午 12:14:53,视频开始时间为 12:14:53。非常感谢。
  • @portalboy95 是的,但是将视频加载到目标时间需要一些时间
【解决方案2】:

如果我正确理解了您的需求,

答案就在这里 Fire event at a certain time of the day

这一切都是为了创建适合您的日期,获取当前时间并使用 setTimeout 来确定不同的日期。

要创建您想要的日期,请使用new Date(year, month, day, hours, minutes, seconds, milliseconds)

【讨论】:

  • 我会对此进行更多研究。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
相关资源
最近更新 更多