【问题标题】:YouTube Player API: getDuration(), getCurrentTime(), getVideoData() not workingYouTube 播放器 API:getDuration()、getCurrentTime()、getVideoData() 不起作用
【发布时间】:2015-08-14 02:52:44
【问题描述】:

对于我的应用程序,我正在尝试使用 YouTube Iframe 播放器 API 来播放视频,并允许用户在不重新加载页面的情况下更改视频。

我通过使用player.loadVideoById(video_id) 方法来实现这一点。通过 YouTube 视频 ID 加载视频后,我还想捕获有关视频的所有相关信息。但是,我注意到没有一个 get 函数可以立即工作,包括 getDuration()getCurrentTime()getVideoData()

我找到了一个使用setTimout 来获取使用player.loadVideoById(video_id) 后大约1-2 秒的信息的杂乱无章的解决方案,但是,我认为这不是正确的解决方案。

在我看来,loadVideoById(video_id) 正在从 YouTube 异步获取数据。是否有可用的回调函数?我在文档中找不到。请帮忙。

谢谢!

【问题讨论】:

  • 嘿,我的建议对你有用吗?如果是,你能选择它作为正确答案吗?

标签: javascript asynchronous youtube-api youtube-javascript-api


【解决方案1】:

我认为有很多 Events 可供您使用。

这里是一个跟踪YT.PlayerState.PLAYING状态的例子,属于onStateChange事件,这基本上是说视频当前正在播放。

player.addEventListener(YT.PlayerState.PLAYING, onVideoPlaying, false);

function onVideoPlaying() {
  console.log('currentTime:', player.getCurrentTime(), 'duration:', player.getDuration());
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-11-21
    • 2015-01-11
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    相关资源
    最近更新 更多