Youtube Iframe API:如何收听跳过事件?,当用户尝试跳过视频时如何获得通知以防止它发生

Youtube Iframe API : How to listen skip events?, when user try to skip video how to get notified prevent it from happening

我正在尝试查找 YouTube 框架 API 中是否有任何方法可以在用户尝试跳过视频并阻止播放时通知我们。

我的代码

function onYouTubePlayerAPIReady() {
  player = new YT.Player("ytplayer", {
    height: "360",
    width: "640",
    videoId: getQueryStringParam("videoID"),

    events: {
      onReady: onPlayerReady,
      onStateChange: onPlayerStateChange,
      onPlaybackQualityChange: onPlaybackQualityChange,
      onPlaybackRateChange: onPlaybackRateChange,
      onError: onError,
      onApiChange: onApiChange,
    },
  });
}

这是一个示例,我希望您关注该代码的 事件 部分有 onStateChange,它会在视频暂停或开始时通知我,onStateChange 的代码是

function onPlayerStateChange(event) {
  switch (event.data) {
    case YT.PlayerState.ENDED:
      console.log('ended')
      break;
    case YT.PlayerState.PLAYING:
      console.log("playing....");
      break;
    case YT.PlayerState.PAUSED:
      console.log("paused....");
      break;
  }
}

所以我想要这样的东西,当用户试图跳过视频然后阻止它继续播放时。

Youtube API 没有跳过或搜索的侦听器。您将需要编写一些自定义代码。一种方法是创建 1 秒或更长的间隔并检查播放时间之间的差异。

为了灵活性,我选择做的是使用不同的进度条并将进度条中的事件附加到播放器。这样你可以更好地控制播放器。

此外,您可以使用以下方法完全禁用 Yt 播放器上的控件:

 playerVars: { 'controls': 0 }

查看此问题以了解有关实施的更多详细信息: How to listen to seek event in youtube embed api