【发布时间】:2015-08-27 04:03:32
【问题描述】:
由于 YouTube API 无法以编程方式触发全屏(显然有充分的理由,与旧版 Flash 支持有关,如 here 所述),我只需使用 HTML5 Element.requestFullscreen API 全屏即可播放器 IFrame。
不幸的是,如果用户在 YouTube 播放器中触发全屏,则播放器本身会进入全屏而不是 IFrame,并且不会产生任何事件来表明它已经这样做了。当应用程序的其余部分不知道什么是全屏和不再是全屏时,这会破坏我的 UI 并导致其他同步问题。 部分解决方案是使用无铬播放器,然后渲染我自己的播放器控件,这样用户就无法单击 YouTube 全屏按钮 - 但是,事实证明,双击 YouTube 视频也会使其进入全屏模式,同样无法向应用程序的其余部分发出它已经这样做的信号。
那么,是否有任何一致的方式防止嵌入式 YouTube 播放器在任何情况下全屏播放,而不影响其他功能?
到目前为止,我最好的解决方案是在 iframe 上设置 pointer-events:none。然而,这并不是很完美,因为它也使得不可能消除显示在 YouTube 视频上的广告横幅。一个理想的解决方案是阻止“双击全屏”响应,而不会弄乱其他任何东西。 (例如,单击播放就可以了,因为 YouTube 播放器确实会发出播放事件,让我让应用程序的其余部分保持同步。)
【问题讨论】:
标签: javascript iframe video youtube html5-fullscreen