【问题标题】:player.getDuration() and player.getCurrentTime() is not function error?player.getDuration() 和 player.getCurrentTime() 不是函数错误?
【发布时间】:2017-11-15 08:15:27
【问题描述】:

我已阅读发布的类似问题,但没有一个对我的情况有所帮助。

这是我的 YouTube iframe:

<iframe id="myframe" style="border: solid 4px #37474F; ">
</iframe>

我动态添加了src 属性。

这是我的播放器:

var player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('myframe', {

    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

我正在尝试做player.getCurrentTime();player.getDuration();,但两者都不断给出“未定义函数”错误。

【问题讨论】:

标签: javascript youtube-api youtube-iframe-api


【解决方案1】:

YouTube 播放器 API 不是在构造函数中设置player.getCurrentTime,而是在稍后设置(可能在加载视频时)。很可能,这是一个错误。

要查看这是真的,请在每次调用之前添加console.log(player.getCurrentTime)。你会看到这最初是undefined,后来变成了一个函数。

通过测试player.getCurrentTime 是否存在来解决此问题。如果不是,则假定返回值为0.0。示例:

var videoPos = !player.getCurrentTime ? 0.0 : player.getCurrentTime();

getDuration 似乎也出现了同样的问题。

【讨论】:

    【解决方案2】:

    正如 usr 所说,这可能是一个错误。这是另一个解决方案:

    var yourVariable = player.getCurrentTime() || 0;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2013-01-04
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2018-08-09
      相关资源
      最近更新 更多