获取当前的YouTube视频时间

Jam*_*mes 30 javascript youtube

我正在编写一个浏览器插件,需要找到一种方法来获取使用JavaScript在YouTube上播放YouTube视频的当前时间.我一直在玩Chrome JavaScript控制台,但没有运气.

似乎chrome API仅适用于嵌入式视频播放器,而不适用于youtube.com上正在播放的视频.我查看的一个选项是在视频的共享部分,它们是"start at:"时间的输入框,其中包含视频的当前时间.我试过在这个输入框上使用.value和.text,它们都返回undefined?有没有人有任何想法?

Jos*_*kle 46

ytplayer = document.getElementById("movie_player");
ytplayer.getCurrentTime();
Run Code Online (Sandbox Code Playgroud)

api

  • 我想着:)我只知道这是因为我尝试了一次,然后对自己进行了思考*我知道这件事...我又怎么做? (3认同)

Jas*_*aro 11

取决于你想要什么

player.getCurrentTime():Number
Run Code Online (Sandbox Code Playgroud)

返回自视频开始播放以来经过的时间(以秒为单位).

player.getDuration():Number
Run Code Online (Sandbox Code Playgroud)

返回当前播放视频的持续时间(以秒为单位).请注意,getDuration()将返回0,直到加载视频的元数据,这通常发生在视频开始播放之后.

http://code.google.com/apis/youtube/js_api_reference.html


zxc*_*cat 6

最后我找到了如何让它在iOS(以及Android)上运行.
实际上,如果在移动浏览器上运行,整个youtube js api都会被打破.

使用YouTube IFrame API中描述的创建播放器解决了问题.new YT.Player

请注意:只有建立<iframe><div>占位符作品在当时的移动浏览器.如果您尝试使用现有<iframe>new YT.Player调用,如IFrame的API所提到的,这将无法正常工作.

播放器创建之后,就可以使用player.getCurrentTime()player.getDuration()player实例创建的.

注意:我没有运气这个方法在玩家获得
player = document.getElementById(...)(来自@JosephMarikle答案).
只有已创建的player实例才能在移动浏


有用的链接: