Czy istnieje sposób, aby HTML5 wideo na pełnym ekranie?

Czy istnieje sposób na odtwarzanie wideo na pełnym ekranie za pomocą tagu HTML5 <video>?

A jeśli nie jest to możliwe, czy ktoś wie, czy jest powód do tej decyzji?

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

20 answers

HTML 5 nie zapewnia możliwości tworzenia pełnoekranowego wideo, ale specyfikacja równoległa Fullscreen dostarcza metodę requestFullScreen, która umożliwia tworzenie dowolnych elementów (w tym elementów <video>) na pełnym ekranie.

Posiada eksperymentalne wsparcie w wielu przeglądarkach .


Oryginalna odpowiedź:

From the HTML5 spec (at the time of writing: June '09):

Agenci użytkownika nie powinni dostarczać publiczne API, aby filmy były pokazano Pełny ekran. Skrypt, połączony z starannie wykonany plik wideo, może oszukać użytkownika do myślenia a Wyświetlono okno dialogowe system-modal, i poproś użytkownika o hasło. Istnieje również niebezpieczeństwo " zwykłego" irytujące, z uruchamianiem stron filmy pełnoekranowe, gdy linki są kliknięto lub poruszano się po stronach. Zamiast, funkcje interfejsu użytkownika-agenta mogą być dostarczone w celu łatwego umożliwienia użytkownik, aby uzyskać pełnoekranowe odtwarzanie mode.

Przeglądarki mogą zapewnia interfejs użytkownika, ale nie powinien zapewniać programowalnego.


Należy zauważyć, że powyższe ostrzeżenie zostało usunięte ze specyfikacji.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-14 08:49:19

Większość odpowiedzi tutaj są nieaktualne.

Jest teraz możliwe wprowadzenie dowolnego elementu na Pełny ekran za pomocąFullscreen API , chociaż nadal jest to niezły bałagan, ponieważ nie można po prostu wywołać div.requestFullScreen() we wszystkich przeglądarkach, ale trzeba użyć specyficznych dla przeglądarki metod prefiksowych.

Stworzyłem prosty wrapper screenfull.js , który ułatwia korzystanie z pełnoekranowego API.

Obecna obsługa przeglądarki to:

  • Chrome 15+
  • Firefox 10+
  • Safari 5.1 +

Zauważ, że wiele przeglądarek mobilnych nie obsługuje jeszcze opcji pełnoekranowej .

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-14 07:38:58

Safari obsługuje go przez webkitEnterFullscreen.

Chrome powinien go obsługiwać, ponieważ jest to również WebKit, ale błędy się usuwają.

Chris Blizzard z Firefox powiedział, że wychodzą z własną wersją fullscreen, która pozwoli każdemu elementowi przejść na Pełny ekran. np. Canvas

Philip Jagenstedt zOpera mówi, że będą ją wspierać w późniejszym wydaniu.

Tak, Specyfikacja wideo HTML5 mówi, że nie obsługuje pełnoekranowego, ale ponieważ użytkownicy tego chcą, a każda przeglądarka będzie go obsługiwać, Specyfikacja się zmieni.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-28 14:22:44
webkitEnterFullScreen();

To musi być wywołane na elemencie znacznika wideo, na przykład, aby uzyskać pełny ekran pierwszy znacznik wideo na stronie Użyj:

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

Uwaga: Jest to nieaktualna odpowiedź i nie ma już znaczenia.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 17:57:56

Myślę, że jeśli chcemy mieć otwarty sposób na oglądanie filmów w naszych przeglądarkach bez żadnych wtyczek zamkniętego źródła (i wszystkich naruszeń bezpieczeństwa, które pochodzi z historii wtyczki flash...). Tag musi znaleźć sposób, aby aktywować Pełny ekran.. Możemy obsłużyć to jak flash robi: aby zrobić fullscreen, musi być aktywowany przez kliknięcie lewym przyciskiem myszy i nic więcej, chodzi mi o to, że ActionScript nie jest możliwe, aby uruchomić pełnoekranowy przy ładowaniu Flasha przez przykład.

I hope Wyraziłem się jasno: w końcu jestem tylko francuskim informatykiem, a nie angielskim poetą:)

Do Zobaczenia!

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

Programowalny sposób na pełnoekranowy działa teraz zarówno w Firefoksie, jak i Chrome (w ich najnowszych wersjach). Dobrą wiadomością jest to, że spec został szkic tutaj:

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

Nadal będziesz musiał zająć się prefiksami dostawców, ale wszystkie szczegóły implementacji są śledzone w witrynie 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/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-28 22:55:41

Wiele nowoczesnych przeglądarek internetowych zaimplementowało pełnoekranowy API, który pozwala na skupienie całego ekranu na określonych elementach HTML. Jest to naprawdę świetne do wyświetlania multimediów interaktywnych, takich jak filmy w w pełni wciągającym środowisku.

Aby uruchomić przycisk pełnoekranowy, należy skonfigurować inny detektor zdarzeń, który wywoła funkcję requestFullScreen() po kliknięciu przycisku. Aby upewnić się, że będzie to działać we wszystkich obsługiwanych przeglądarkach, musisz również sprawdzić, czy requestFullScreen() jest dostępna i alternatywna dla wersji poprzedzonych przez Sprzedawcę (mozRequestFullScreen i webkitRequestFullscreen), Jeśli nie jest.

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

Odniesienie: - https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode Numer referencyjny: - 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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-18 22:45:09

Możesz zmienić szerokość i wysokość na 100%, ale nie pokryje To przeglądarki chrome ani powłoki systemu operacyjnego.

Decyzja projektowa jest spowodowana tym, że HTML mieszka w oknie przeglądarki. Wtyczki Flash nie są wewnątrz okna, więc mogą przejść na Pełny ekran.

To ma sens, w przeciwnym razie można zrobić znaczniki img, które pokrywały powłokę, lub zrobić znaczniki h1, aby cały ekran był literą.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-28 17:05:09

Nie, nie jest możliwe, aby mieć pełnoekranowy film w html 5. Jeśli chcesz znać powody, masz szczęście, ponieważ bitwa argument dla pełnoekranowego toczy się właśnie teraz. Zobacz listę dyskusyjną WHATWG i poszukaj słowa "wideo". Osobiście mam nadzieję, że dostarczają one fullscreen API w 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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-09 07:40:38

Firefox 3.6 ma opcję pełnego ekranu dla filmów HTML5, kliknij prawym przyciskiem myszy na wideo i wybierz "pełny ekran".

Najnowsze nightlies Webkit obsługuje również Pełny ekran wideo HTML5, spróbuj sublime player {[4] } z najnowszym nightly i przytrzymaj Cmd / Ctrl podczas wybierania opcji Pełny ekran.

Domyślam się, że Chrome / Opera również będzie obsługiwać coś takiego. Mam nadzieję, że IE9 będzie również obsługiwać Pełny ekran wideo 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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-30 13:51:48

Jest to obsługiwane w WebKit poprzez 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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-01 16:13:08

From 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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-02 07:22:48

Alternatywnym rozwiązaniem byłoby zmuszenie przeglądarki do podania tej opcji w menu kontekstowym. Nie trzeba mieć Javascript, aby to zrobić, choć mogłem zobaczyć, kiedy to będzie przydatne.

W międzyczasie alternatywnym rozwiązaniem byłoby po prostu zmaksymalizowanie okna (Javascript może podać wymiary ekranu), a następnie zmaksymalizowanie wideo w nim. Spróbuj, a następnie po prostu sprawdź, czy wyniki są akceptowalne dla użytkowników.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-23 19:42:34

HTML 5 video robi pełnoekranowy w najnowszym Nightly build Safari, choć nie jestem pewien, jak to jest technicznie wykonane.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-17 13:37:37

Kompletne rozwiązanie:

    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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-26 08:38:27

Tak. Cóż, co się dzieje z wideo HTML5 jest to, że po prostu umieścić tag <video> i przeglądarka da własny interfejs użytkownika, a tym samym możliwość oglądania na pełnym ekranie. To naprawdę sprawia, że życie u nas użytkowników jest o wiele lepsze, aby nie musieć oglądać "sztuki" jaką może zrobić jakiś programista bawiący się Flashem :) dodaje to również spójności platformie, co jest miłe.

 -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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-02 01:44:25

To proste, wszystkie problemy można rozwiązać w ten sposób,

1) have escape always take you out of fullscreen mode (Nie dotyczy to ręcznego wprowadzania trybu pełnoekranowego przez f11)

2) tymczasowo wyświetla mały baner z informacją o wprowadzeniu trybu pełnoekranowego wideo (przez przeglądarkę)

3) domyślnie blokuje działanie pełnoekranowe, tak jak zostało to zrobione dla wyskakujących okienek i lokalnej bazy danych w html5 i location api i etc, itd.

Nie widzę żadnych problemów z tym design. ktoś myśli, że coś przeoczyłem?

 -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/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-01 03:47:39

Od Chrome 11.0.686.0 dev channel Chrome ma teraz pełnoekranowe wideo.

 -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/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-01 22:32:06

Możesz to zrobić, jeśli powiesz użytkownikowi, aby nacisnął F11( Pełny ekran dla wielu przeglądarek), i umieścisz wideo na całej stronie.

 -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/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-16 14:34:23

Jeśli żadna z tych odpowiedzi nie działa (tak jak dla mnie), możesz ustawić dwa filmy. Jeden dla zwykłego rozmiaru, a drugi dla rozmiaru pełnoekranowego. Gdy chcesz przełączyć się na tryb pełnoekranowy

  1. Użyj javascript, aby ustawić atrybut " src "wideo pełnoekranowego na atrybut" src " mniejszych filmów
  2. Ustaw wideo.currentTime na filmie pełnoekranowym, aby był taki sam jak mały film.
  3. Użyj css "display: none", aby ukryć mały film i wyświetlić duży z via 'position: absolute 'i' z-index:1000 ' lub coś naprawdę wysokiego.
 -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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-11 21:55:55