如何在 YT API 上获取视频时长



大家好,我正在使用YT api制作一些视频,但我想在视频完成后创建一些函数。有什么方法可以找到视频有多长?

function onPlayerReady() {
  function updateTime() {
    var oldTime = videotime;
    if(player && player.getCurrentTime) {
      videotime = player.getCurrentTime();
    }
    if(videotime !== oldTime) {
      onProgress(videotime);
    }
  }
  timeupdater = setInterval(updateTime, 100);
}
// when the time changes, this will be called.
function onProgress(currentTime) {
    console.log(videotime)
    var halfway = (videotime / 2);
  if(currentTime == halfway) {
    counters("midpoint"); 
    console.log("the video has reached halfway!");
  }
}

这是我用来查看时间的

使用此处的"视频"列表 API。您需要部件属性的"内容详细信息"。然后它应该作为 contentDetails.duration 返回

嗯,有很多事情你必须改变。

  • 删除 updateTime() 函数,这不是必需的。
  • 不要像 oldTime 和 videotime 那样存储变量,要检查播放器状态只需player.getPlayerState(),1 表示"播放"
  • onProgress()中,您将计算的一半与视频时间(当前时间)除以 2 进行比较,这不是播放器持续时间。

最终和缩短的代码:

function onPlayerReady() {
  timeupdater = setInterval(function() {
    if (player.getPlayerState() == 1)
        onProgress(player);
  }, 100);
}
// when the time changes, this will be called.
function onProgress(p) {
  if(p.getCurrentTime() > p.getDuration() / 2) {
    // counters("midpoint"); 
    console.log("the video has reached halfway!");
  }
}

小提琴

希望对你有用:)

相关内容

  • 没有找到相关文章

最新更新