微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在多个点暂停 Youtube API 视频

如何解决在多个点暂停 Youtube API 视频

我正在使用此代码停止 youtube API 视频。

 function onPlayerStateChange(event) {

  var time,rate,remainingTime;
  clearTimeout(stopPlayTimer);
  if (event.data == YT.PlayerState.PLAYING) {
    time = player.getCurrentTime()
    if (time < stopPlayAt) {
      rate = player.getPlaybackRate();
      remainingTime = (stopPlayAt - time) / rate;
      stopPlayTimer = setTimeout(pauseVideo,remainingTime * 1000);
    }

  }
}

我正在使用从 pauseVideo 函数触发的以下函数

function replay() {
  player.seekTo(startPlayAt,true)
  player.playVideo()
}

代码的数据来自

var data = [{
  startPlayAt: 0,stopPlayAt: 10
}]

显然我正在使用地图函数和 pauseVideo 函数

当我像这样使用多个数据时,问题就开始了

var data = [{
  startPlayAt: 0,stopPlayAt: 10,},{
  startPlayAt: 10,stopPlayAt: 20,}]

我尝试使用 for 循环,如果在 onPlayerStateChange 中的 for 循环内。但没有任何效果。 当我使用 for 循环时,它只是背靠背运行所有可迭代对象,甚至不会在执行第二个可迭代对象之前等待视频的当前时间超过数据的 stopPlayAt 值。

所有函数都应该只使用data[0],只有当视频的当前时间大于数据集中的stopPlayAt时间时,才使用另一个数据停止视频并启动视频。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。