Youtube 嵌入的自动全屏

IT技术 javascript ipad html youtube embed
2021-03-14 23:41:02

我有一个嵌入在网页上的 Youtube 视频。

当用户按下播放键时,是否可以使用HTML5 iframe 和 Youtube 的 API使视频全屏显示

使用 Chromeless 播放器不是一种选择,因为该网站是为 iPad 设计的。

4个回答

2013 年 11 月更新:这是可能的 -真正的全屏,而不是全窗口,使用以下技术。正如@chrisg 所说,YouTube JS API 没有“默认全屏”选项。

  • 创建自定义播放按钮
  • 使用 YouTube JS API 播放视频
  • 使用 HTML5 全屏 API 使元素全屏

这是代码。

var $ = document.querySelector.bind(document);

// Once the user clicks a custom fullscreen button
$(playButtonClass).addEventListener('click', function(){
  // Play video and go fullscreen
  player.playVideo();

  var playerElement = $(playerWrapperClass);
  var requestFullScreen = playerElement.requestFullScreen || playerElement.mozRequestFullScreen || playerElement.webkitRequestFullScreen;
  if (requestFullScreen) {
    requestFullScreen.bind(playerElement)();
  }
})
抱歉,showVideoCallback() 函数是什么;?
2021-04-24 23:41:02
这不是真的 bfred.it,在 Android 上你可以调用: webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
2021-04-24 23:41:02
@Martialp 只是我削减生产代码以制作一个很好的例子的inheritance,我现在已经删除了它。
2021-04-26 23:41:02
在 CodePen 上创建了一个演示,看起来虽然代码有效(仅在桌面上),但它破坏了 YouTube在 Chrome 中的全屏行为,所以我不建议使用它。-- 我还想补充一点,它不能在移动设备上运行,因为 (1) 你不能在 iOS/Android 上通过 YouTube API 播放视频和 (2) 即使你通过点击播放器播放视频, requestFullScreen() 需要立即用户操作,因此它不会触发“onPlay”。因此,只需轻轻一按,您就可以播放视频或全屏显示;你总是需要两个独立的水龙头。
2021-04-29 23:41:02
@AlexeyStrakh 播放器元素使用的 CSS 类,例如.player或类似的。
2021-05-16 23:41:02

据我所知,使用 youtube 嵌入代码或 youtube javascript API 是不可能的。您必须编写自己的播放器才能拥有此功能。

做一些阅读,看起来您可以使用chromeless youtube 播放器,它会根据其父元素的宽度和高度调整自身大小。

这意味着,如果您使用 chromeless 播放器,您可以在play触发事件的情况下使用 javascript 调整 div 的大小

不,这是不可能的,出于安全考虑。

最终用户必须做一些事情来启动全屏。

如果您要运行 Adob​​e AIR 应用程序,您可以自动全屏激活,而无需最终用户执行任何操作。但那将是一个桌面应用程序,而不是一个网页。

有什么安全顾虑?诱使用户认为他们在登录屏幕上并输入密码?据我所知,没有办法通过 Youtube 视频从用户那里获取数据。有兴趣知道安全问题是什么。
2021-05-06 23:41:02

我想我会发布一种更简单的更新方法来使用 html5 解决这个问题。

.ytfullscreen是按钮的名称或您想要单击的任何名称。 #yrc-player-frame-0将是您的 iframe 的名称。

jQuery(".ytfullscreen").click(function () {
    var e = document.getElementById("yrc-player-frame-0");
    if (e.requestFullscreen) {
        e.requestFullscreen();
    } else if (e.webkitRequestFullscreen) {
        e.webkitRequestFullscreen();
    } else if (e.mozRequestFullScreen) {
        e.mozRequestFullScreen();
    } else if (e.msRequestFullscreen) {
        e.msRequestFullscreen();
    }
});
这是与我的答案相同的代码,添加了 jQuery 依赖项。
2021-05-16 23:41:02