我一直在为此寻找解决方案一段时间,但我仍然没有找到它。我们的应用需要轮询一个 YouTube 视频对象player.getCurrentTime()
来驱动一些屏幕动画。使用 flash API 这很棒,因为我们可以每40ms
隔一段时间(25 FPS)轮询播放器并获得非常准确的当前播放器时间值。我们现在已经开始使用 iFrame API,遗憾的是它不允许任何接近该精度水平的东西。我做了一些研究,似乎因为它是一个 iFrame,apostMessage
用于将播放器状态暴露给player.getCurrentTime()
调用。不幸的是,这个 post message 事件很少被触发 - 有时低至每秒 4 次。更糟糕的是,消息触发的实际速率似乎取决于浏览器的渲染引擎。
有谁知道是否可以强制渲染引擎更频繁地触发这些消息,以便可以实现更大的时间分辨率来轮询播放器?我试过requestAnimationFrame
了,并没有解决问题。有没有人成功地让 iFrame 播放器报告更准确的时间和更频繁的时间?