有没有一种方法来播放视频全屏使用 HTML5<video>标签?
<video>
如果这是不可能的,有人知道这个决定是否有原因吗?
你可以改变宽度和高度为100% ,但它不会覆盖浏览器铬或操作系统外壳。
设计决策是因为 HTML 存在于浏览器窗口中。Flash 插件不在窗口内,所以它们可以全屏显示。
这是有意义的,否则您可以创建覆盖 shell 的 img 标记,或者创建 h1标记,使整个屏幕成为一个字母。
HTML5没有提供制作全屏视频的方法,而是提供了并行 全屏 API为元素定义了一个 API 来全屏显示它们自己。
这可以应用于任何元素,包括视频。
浏览器支持 很好,但是 Internet Explorer 和 Safari 需要前缀版本。
提供了一个 外部演示作为 Stack Snippet 沙箱规则打破它。
<div id="one"> One </div> <div id="two"> Two </div> <button>one</button> <button>two</button>
div { width: 200px; height: 200px; } #one { background: yellow; } #two { background: pink; }
addEventListener("click", event => { const btn = event.target; if (btn.tagName.toLowerCase() !== "button") return; const id = btn.textContent; const div = document.getElementById(id); if (div.requestFullscreen) div.requestFullscreen(); else if (div.webkitRequestFullscreen) div.webkitRequestFullscreen(); else if (div.msRequestFullScreen) div.msRequestFullScreen(); });
HTML 5没有提供制作全屏视频的方法,但是并行 全屏幕规格提供了 requestFullScreen方法,允许任意元素(包括 <video>元素)制作全屏视频。
requestFullScreen
它有 在许多浏览器中的实验性支持。
注意: 这已经从规范中删除了。
来自 HTML5规范(撰写时间: 2009年6月) :
用户代理不应提供 公共 API 导致视频显示 全屏幕。一个脚本,结合一个 精心制作的视频文件,可以 诱使使用者认为 显示了系统模态对话框, 并提示用户输入密码。 还有“仅仅”的危险 烦恼,随着页面启动 当链接是全屏幕视频 点击或浏览页面, 特定于用户代理的界面特性 可以容易地提供 用户获得全屏幕播放 模式。
浏览器可以提供用户界面,但不应该提供可编程的界面。
我认为,如果我们想在浏览器中以开放的方式观看视频,而不使用任何封闭源代码插件(以及所有与 flash 插件历史相关的数字证书认证机构... ...)。标签必须找到激活全屏的方法。.我们可以像 flash 那样处理它: 要做全屏,只需要用鼠标左键点击就可以激活,我的意思是 ActionScript 不可能在加载一个 flash 时启动全屏。
我希望我已经说得够清楚了: 毕竟,我只是一个法国 IT 学生,而不是一个英国诗人:)
再见!
另一种解决方案是浏览器只需在上下文菜单中提供此选项。不需要使用 Javascript 来做这件事,尽管我可以看到它什么时候会有用。
与此同时,另一种解决方案可能只是最大化窗口(Javascript 可以提供屏幕尺寸) ,然后最大化其中的视频。尝试一下,然后简单地看看结果是否为用户所接受。
不,这是不可能有全屏幕视频在 html 5。如果你想知道原因,你很幸运,因为争夺全屏幕的争论正在进行。查看 WHATWG 邮件列表并查找单词“ video”。我个人希望他们在 HTML5中提供全屏 API。
Firefox 3.6有一个 HTML5视频的全屏选项,右键点击视频并选择“全屏”。
最新的 Webkit 夜间版也支持全屏 HTML5视频,尝试使用最新的 出色的选手夜间版,并在选择全屏选项时保持 Cmd/Ctrl。
我想 Chrome/Opera 也会支持类似的东西,希望 IE9也能支持全屏 HTML5视频。
HTML5视频在最新的 Safari 夜间版本中是全屏的,尽管我不确定它在技术上是如何实现的。
WebKit 通过 全屏支持这一点。
是的。HTML5视频的情况是,你只要把 <video>标签放进去,浏览器就会提供自己的用户界面,从而提供全屏观看的能力。它确实让我们用户的生活变得更好,不必看到一些开发者玩 Flash 可以创造的“艺术”:)它还增加了平台的一致性,这很好。
很简单,所有的问题都可以这样解决,
1)有逸出总是带你走出全屏模式 (这不适用于通过 f11手动输入全屏)
2)临时显示一个小横幅,说明进入全屏视频模式(由浏览器)
3)在默认情况下阻止全屏幕操作,就像在 html5中弹出窗口和本地数据库以及位置 api 等等中所做的那样。
我看不出这个设计有什么问题,有人觉得我漏掉了什么吗?
Safari 通过 webkitEnterFullscreen支持它。
webkitEnterFullscreen
Chrome 应该支持它,因为它也是 WebKit,但是出错了。
火狐的 Chris Blizzard 说他们将推出他们自己的全屏幕版本,这将允许任何元素进入全屏幕。例如帆布
歌剧的 Philip Jagenstedt 说他们将在后来的版本中支持它。
是的,HTML5视频规范说不支持全屏,但是因为用户需要它,而且每个浏览器都将支持它,规范将会改变。
webkitEnterFullScreen();
这需要在 video 标记元素上调用,例如,为了全屏显示页面上的第一个 video 标记,可以使用:
document.getElementsByTagName('video')[0].webkitEnterFullscreen();
注意: 这是过时的答案,不再相关。
从 Chrome 11.0.686.0开始,Chrome 已经有了全屏视频。
你可以这样做,如果你告诉用户按 F11(全屏为许多浏览器) ,你把视频的整个页面正文。
一种可编程的全屏方式现在可以在 Firefox 和 Chrome (最新版本)中使用。好消息是,这里已经起草了一份规范:
Http://dvcs.w3.org/hg/fullscreen/raw-file/tip/overview.html
您现在仍然需要处理供应商前缀,但 MDN 站点正在跟踪所有的实现细节:
Https://developer.mozilla.org/en/dom/using_full-screen_mode
这里的大部分答案都过时了。
现在可以使用 全屏 API将任何元素全屏显示,尽管仍然相当混乱,因为不能在所有浏览器中调用 div.requestFullScreen(),而必须使用特定于浏览器的前缀方法。
div.requestFullScreen()
我已经创建了一个简单的包装器 Screen full.js,它使得使用全屏 API 变得更加容易。
目前对浏览器的支持有:
请注意,许多移动浏览器似乎不支持 全屏选项。
如果没有这些答案不工作(因为他们没有为我) ,你可以设置两个视频。一个是普通尺寸,另一个是全屏尺寸。当你想切换到全屏时
来自 CSS
video { position: fixed; right: 0; bottom: 0; min-width: 100%; min-height: 100%; width: auto; height: auto; z-index: -100; background: url(polina.jpg) no-repeat; background-size: cover; }
许多现代网页浏览器已经实现了一个 FullScreen API,允许您将全屏焦点放在某些 HTML 元素上。这对于在完全沉浸式的环境中显示交互式媒体(如视频)来说真的很棒。
要使全屏按钮工作,您需要设置另一个事件监听器,当按钮被单击时,它将调用 requestFullScreen()函数。为了确保在所有支持的浏览器上都能正常工作,您还需要检查 requestFullScreen()是否可用,如果不可用,则回退到供应商的前缀版本(mozRequestFullScreen和 webkitRequestFullscreen)。
requestFullScreen()
mozRequestFullScreen
webkitRequestFullscreen
var elem = document.getElementById("myvideo"); if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.msRequestFullscreen) { elem.msRequestFullscreen(); } else if (elem.mozRequestFullScreen) { elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen(); }
参考文献:-< a href = “ https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/using _ full _ screen _ mode”rel = “ norefrer”> https://developer.mozilla.org/en-us/docs/web/guide/api/dom/using_full_screen_mode 参考文献:-< a href = “ http://blog.team/treehouse.com/building-custom- control-for-html5-video”rel = “ norefrer”> http://blog.teamtreehouse.com/building-custom-controls-for-html5-videos
完整的解决方案:
function bindFullscreen(video) { $(video).unbind('click').click(toggleFullScreen); } function toggleFullScreen() { if (!document.fullscreenElement && // alternative standard method !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) { // current working methods if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.msRequestFullscreen) { document.documentElement.msRequestFullscreen(); } else if (document.documentElement.mozRequestFullScreen) { document.documentElement.mozRequestFullScreen(); } else if (document.documentElement.webkitRequestFullscreen) { document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); } } else { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } } }
如果你可以选择将你的网站定义为渐进式网络应用程序(PWA) ,那么你也可以选择在 宣言 Json下使用 display: "fullscreen"。但是这只有在用户将你的 webapp 添加/安装到主屏幕并从那里打开的情况下才能起作用。
display: "fullscreen"