player.getDuration()和player.getCurrentTime()不是函数错误?

时间:2017-06-13 13:46:00

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

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

以下是我的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();,但两者都继续提供未定义的&#34;功能&#34;错误。

2 个答案:

答案 0 :(得分:1)

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

要确保这是真的,请在每次通话前添加console.log(player.getCurrentTime)。您最初会看到undefined,稍后会更改为函数。

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

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

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

答案 1 :(得分:0)

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

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