¿Hay alguna manera de hacer video HTML5 a pantalla completa?


¿Hay alguna forma de reproducir un vídeo a pantalla completa utilizando la etiqueta HTML5 <video>?

Y si esto no es posible, ¿alguien sabe si hay una razón para esta decisión?

Author: Paul D. Waite, 2009-06-28

20 answers

HTML 5 no proporciona ninguna forma de hacer un video a pantalla completa, pero la especificación paralela a pantalla completa proporciona el método requestFullScreen que permite que elementos arbitrarios (incluidos elementos <video>) se hagan a pantalla completa.

Tiene soporte experimental en varios navegadores.


Respuesta original:

De la especificación HTML5 (en el momento de escribir: June ' 09):

Los agentes de usuario no deben proporcionar un API pública para hacer que los videos sean demostrar pantalla completa. Un guión, combinado con un archivo de vídeo cuidadosamente elaborado, podría engañar al usuario para que piense se ha mostrado el diálogo sistema-modal, y pedir al usuario una contraseña. También existe el peligro de " meros" molestia, con el lanzamiento de páginas videos a pantalla completa cuando los enlaces son clic o páginas navegadas. En su lugar, características específicas de la interfaz del agente de usuario puede ser proporcionado para permitir fácilmente el usuario para obtener una reproducción a pantalla completa modo.

Los navegadores pueden proporcionar una interfaz de usuario, pero no debe proporcionar una programable.


Tenga en cuenta que la advertencia anterior se ha eliminado de la especificación.

 87
Author: Quentin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-14 08:49:19

La mayoría de las respuestas aquí están desactualizadas.

Ahora es posible traer cualquier elemento a pantalla completa usando la API Fullscreen, aunque sigue siendo un desastre porque no solo se puede llamar a div.requestFullScreen() en todos los navegadores, sino que debe usar métodos prefijados específicos del navegador.

He creado un simple wrapper screenfull.js que facilita el uso de la API de pantalla completa.

El soporte actual del navegador es:

  • Cromo 15+
  • Firefox 10+
  • Safari 5.1 +

Tenga en cuenta que muchos navegadores móviles no parecen soportar una opción de pantalla completa todavía.

 69
Author: Sindre Sorhus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-14 07:38:58

Safari lo soporta a través de webkitEnterFullscreen.

Chrome debe ser compatible ya que es WebKit también, pero errores de salida.

Chris Blizzard de Firefox dijo que están saliendo con su propia versión de pantalla completa que permitirá que cualquier elemento vaya a pantalla completa. por ejemplo, Canvas

Philip Jagenstedt de Opera dice que lo apoyarán en una versión posterior.

Sí, la especificación de video HTML5 dice que no es compatible con pantalla completa, pero como los usuarios lo desean, y cada navegador va a soportarlo, la especificación cambiará.

 30
Author: heff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-28 14:22:44
webkitEnterFullScreen();

Esto necesita ser llamado en el elemento de etiqueta de vídeo, por ejemplo, a pantalla completa la primera etiqueta de vídeo en el uso de la página:

document.getElementsByTagName('video')[0].webkitEnterFullscreen();

Aviso: esta es una respuesta obsoleta y ya no es relevante.

 14
Author: jpkeisala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-28 17:57:56

Creo que si queremos tener una forma abierta de ver videos en nuestros navegadores sin ningún complemento de código cerrado (y todas las brechas de seguridad que viene con el historial del complemento flash...). La etiqueta tiene que encontrar una manera de activar la pantalla completa.. Podríamos manejarlo como lo hace flash: para hacer fullscreen, tiene que ser activado con un clic izquierdo con el ratón y nada más, quiero decir que no es posible con ActionScript lanzar fullscreen al cargar un flash por ejemplo.

Espero He sido lo suficientemente claro: Después de todo, solo soy un estudiante francés de TI, no un poeta inglés :)

Nos Vemos!

 6
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-01 20:55:35

Una forma programable de hacer pantalla completa está funcionando ahora tanto en Firefox como en Chrome (en sus últimas versiones). La buena noticia es que una especificación ha sido borrador aquí:

Http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html

Todavía tendrá que lidiar con prefijos de proveedor por ahora, pero todos los detalles de implementación se están rastreando en el sitio MDN:

Https://developer.mozilla.org/en/DOM/Using_full-screen_mode

 5
Author: Ernest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-28 22:55:41

Muchos navegadores web modernos han implementado una API de pantalla completa que le permite dar un enfoque de pantalla completa a ciertos elementos HTML. Esto es realmente genial para mostrar medios interactivos como videos en un entorno totalmente inmersivo.

Para que el botón de pantalla completa funcione, debe configurar otro receptor de eventos que llamará a la función requestFullScreen() cuando se haga clic en el botón. Para asegurarse de que esto funcione en todos los navegadores compatibles, también necesitará verificar si el requestFullScreen() está disponible y se puede recurrir a las versiones con prefijo de proveedor (mozRequestFullScreen y webkitRequestFullscreen) si no lo está.

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();
}

Referencia: - https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode Referencia:- http://blog.teamtreehouse.com/building-custom-controls-for-html5-videos

 5
Author: Muhammed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-18 22:45:09

Puede cambiar el ancho y la altura para que sean 100%, pero no cubrirá el navegador chrome o el shell del sistema operativo.

La decisión de diseño se debe a que HTML vive dentro de la ventana del navegador. Los complementos de Flash no están dentro de la ventana, por lo que pueden ir a pantalla completa.

Esto tiene sentido, de lo contrario podría hacer etiquetas img que cubrieran el shell, o hacer etiquetas h1 para que toda la pantalla fuera una letra.

 3
Author: Rich Bradshaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-28 17:05:09

No, no es posible tener video a pantalla completa en html 5. Si quieres saber las razones, tienes suerte porque la batalla de argumento para pantalla completa se libra en este momento. Vea WHATWG mailing list y busque la palabra "video". Personalmente espero que proporcionen API de pantalla completa en HTML 5.

 3
Author: calavera.info,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-09 07:40:38

Firefox 3.6 tiene una opción de pantalla completa para videos HTML5, haga clic derecho en el video y seleccione 'pantalla completa'.

Los últimos Webkit nightlies también admiten video HTML5 de pantalla completa, pruebe el Sublime player con la última noche y mantenga presionado Cmd / Ctrl mientras selecciona la opción de pantalla completa.

Supongo que Chrome / Opera también soportará algo como esto. Esperemos que IE9 también será compatible con la pantalla completa de vídeo HTML5.

 3
Author: Husky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-30 13:51:48

Esto es soportado en WebKit a través de webkitEnterFullscreen.

 3
Author: Zachary Ozer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-01 16:13:08

Desde 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;
}
 3
Author: Montaser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-02 07:22:48

Una solución alternativa sería tener que browser simplemente proporcionar esta opción en el menú contextual. No es necesario tener Javascript para hacer esto, aunque pude ver cuándo sería útil.

Mientras tanto, una solución alternativa sería simplemente maximizar la ventana (Javascript puede proporcionar dimensiones de pantalla) y luego maximizar el video dentro de ella. Dale una oportunidad y luego simplemente ver si los resultados son aceptables para sus usuarios.

 2
Author: Andre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-23 19:42:34

El video HTML 5 va a pantalla completa en la última compilación nocturna de Safari, aunque no estoy seguro de cómo se logra técnicamente.

 1
Author: st3v3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-17 13:37:37

La solución completa:

    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();
                    }
            }
    }
 1
Author: momo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-26 08:38:27

Sí. Bueno, lo que sucede con el video HTML5 es que solo pones la etiqueta <video> y el navegador le dará su propia interfaz de usuario, y por lo tanto la capacidad de visualización a pantalla completa. Realmente hace la vida mucho mejor en los usuarios de nosotros no tener que ver el "arte" que algún desarrollador jugando con Flash podría hacer :) También agrega consistencia a la plataforma, lo cual es bueno.

 -1
Author: SeniorShizzle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-02 01:44:25

Es simple, todos los problemas se pueden resolver así,

1) haz que escape siempre te saque del modo de pantalla completa (esto no se aplica a la introducción manual de pantalla completa a través de f11)

2) mostrar temporalmente un pequeño banner que diga que se ingresa el modo de video a pantalla completa (por el navegador)

3) bloquear la acción de pantalla completa de forma predeterminada, al igual que se ha hecho para las ventanas emergentes y la base de datos local en html5 y la api de ubicación y etc, etc.

No veo ningún problema con esto diseño. ¿alguien cree que me perdí algo?

 -1
Author: AMK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-01 03:47:39

A partir de Chrome 11.0.686.0 dev channel Chrome ahora tiene video a pantalla completa.

 -1
Author: Mohamed Mansour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-01 22:32:06

Puede hacer esto si le dice al usuario que presione F11(pantalla completa para muchos navegadores), y coloca el video en todo el cuerpo de la página.

 -1
Author: Adrian B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-16 14:34:23

Si ninguna de estas respuestas no funciona (como no lo hicieron para mí) puede configurar dos videos. Uno para el tamaño normal y otro para el tamaño de pantalla completa. Cuando desee cambiar a pantalla completa

  1. Use javascript para establecer el atributo 'src' del video de pantalla completa al atributo 'src' de videos más pequeños
  2. Establecer el vídeo.currentTime en el video de pantalla completa para ser el mismo que el video pequeño.
  3. Use css 'display: none' para ocultar el video pequeño y mostrar el grande con la vía 'position: absolute' y 'z-index: 1000' o algo realmente alto.
 -1
Author: Leon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 21:55:55