计时器“一起”与 Youtube 剪辑配合 JS 在不同时间显示 div
我想在页面上加载一个 youtube 剪辑,并且除了该剪辑之外,我还想添加一个顶部 (HTML) 层,该层的工作方式有点像 youtube 自己的注释功能。
项目符号: - 用户将看到 YT 剪辑(可能在自定义播放器中) - 根据剪辑的当前时间,我需要 JS 加载剪辑顶部图层上的信息。
所以: 例如,从 0.00 到 0.05,您会在剪辑顶部看到一段文本 从 0.05 到 0.30 无文字 再次从 0.30 到 0.37 文本 等等
关于如何解决这个问题有什么想法吗?我意识到 Youtube 的 Player API 具有 getCurrentTime 的功能 但是我该如何继续编写一段 JS 来与剪辑顶部的 div 层上的剪辑一起“播放”呢?
I want to load a youtube clip on a page, and along with the clip I want to add a top (HTML) layer that will work somewhat like youtube's own annotation functionality.
In bullets:
- User will see a YT clip (probably in a custom player)
- Depending on the current time of the clip, I need JS to load information on a layer on top of the clip.
So:
For example, from 0.00 to 0.05 you see a piece of text on top of the clip
From 0.05 to 0.30 no text
From 0.30 to 0.37 text again
etc etc
Any ideas on how to approach this? I realize Youtube's Player API has the functionality to getCurrentTime
But how would I go on write a piece of JS to "play along" with the clip on a div layer on top of the clip?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实现这一目标的方法确实与 yt api 上的 getCurrentTime 方法有关,具体来说,在 setInterval 的帮助下在重复函数中调用它。
您将需要保留希望呈现的覆盖数组,以及开始时间和结束时间,例如:
然后,您需要几个函数来处理电影的播放和停止(或暂停)。
您会注意到它使用变量
ytplayer
并根据 jsapi文档 这可以使用以下代码来获取:注意,其中我附加了一个事件侦听器,这导致我们找到一种处理电影状态更改的方法
所以拼图的最后一块实际上是处理一个“tick”,其中我设置为发生在每个 第二。这个方法
showOrHideOverlay
看起来像:最后,现场示例: http://jsfiddle.net/zTZjU /(只需按剪辑上的播放即可)
The way to achieve this is indeed to do with the
getCurrentTime
method on the yt api, specifically, call it in a repeating function with the help ofsetInterval
.You will need to keep an array of overlays you wish to present, along with the from and to time, something like:
Then, you'll need a couple of functions to handle the movie playing and stoping (or pausing).
You'll notice that uses a variable
ytplayer
and according to the jsapi documentation this can be grabbed using the following code:Notice in there ive attached an event listener, this leads us to a method to handle the movie state changing
So the last piece of the puzzle is actually handling a "tick" which ive set to occur every second. This method
showOrHideOverlay
looks like:Finally, the live example: http://jsfiddle.net/zTZjU/ (Just press play on the clip)
检查这个小提琴:http://jsfiddle.net/rEeJS/
我添加了
wmode="transparent"
以允许叠加层显示在 Chrome 中。Check this fiddle: http://jsfiddle.net/rEeJS/
I added
wmode="transparent"
to allow the overlay to appear in Chrome.