Wymuś wideo YouTube HTML5

119

Jeśli chodzi o blog API YouTube , eksperymentują z nowym odtwarzaczem wideo HTML5 .

Najwyraźniej, aby odtworzyć wideo w html5, musisz użyć kodu osadzania iframe:

<iframe class="youtube-player" type="text/html" width="640" height="385"
  src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0">
</iframe>

Ale jeśli klient nie dołączył do wersji próbnej HTML5 , odtwarzacz automatycznie powróci do odtwarzacza Flash, nawet jeśli przeglądarka klienta obsługuje wideo HTML5.

Jak wymusić odtwarzanie wideo HTML5, jeśli przeglądarka to obsługuje, nawet jeśli użytkownicy nie są jeszcze zaangażowani w wersję próbną HTML5?

W przeciwnym razie jak wyłączyć rezerwę flash?

EDYTOWAĆ:

Możliwe jest wymuszenie na odtwarzaczu HTML linków do YouTube Video , ale potrzebuję tego rodzaju funkcji dla osadzonych filmów.

Kami
źródło
Co by było, gdybyś wykrył możliwości HTML5 za pomocą js i odpowiednio zaimplementował kod API YouTube. Lub powinienem powiedzieć, że jeśli wideo HTML5 nie jest obsługiwane, nie implementuj interfejsu API YouTube, ponieważ skorzystałby z Flasha.
David Hobs

Odpowiedzi:

179

Znalazłem rozwiązanie:

Musisz dodać html5=1w atrybucie src elementu iframe:

<iframe src="http://www.youtube.com/embed/dP15zlyra3c?html5=1"></iframe>

Film zostanie wyświetlony w formacie HTML5, jeśli jest dostępny, lub w zastępstwie do odtwarzacza Flash.

Kami
źródło
1
hmm - teraz to nie działa (te same filmy), dziwne. Zastanawiam się, czy działa tylko na niektórych serwerach YouTube?
UpTheCreek
1
Nie działa podczas dodawania &html5=1na końcu
nieza
1
Dodanie &html5=1(lub &html5=trueczegoś podobnego) na końcu hiperłącza (nie wideo osadzonego w ramce iframe) nie działa w przeglądarce IE bez Flash.
Ryan,
1
Filmy z YouTube z reklamami będą automatycznie używać odtwarzacza Flash
włącz
8
Myślę, że wszystkie raporty są stronnicze. Nikt nie powiedział, czy jest w "html5 beta youtube" i to jest prawdopodobnie kluczowy czynnik. Kiedy opuszczam wersję beta html5, wydaje się, że? Html5 = 1 nic nie robi. Każdy film jest wyposażony w flash.
Paul Brewczyński 13.07.13
20

To, czy filmy z YouTube są odtwarzane w formacie HTML5, zależy od ustawienia na https://www.youtube.com/html5 dla przeglądarki. Chrome preferuje odtwarzanie HTML5 automatycznie, ale nawet najnowsze Firefox i Internet Explorer nadal używają Flasha, jeśli jest zainstalowany na komputerze.

Parametr html5 = 1 teraz nic (już) nie robi. (Zauważ, że nie jest nawet wymieniony na https://developers.google.com/youtube/player_parameters .)

Vacilando
źródło
Właśnie zaznaczone, wybrałem odtwarzacz HTML5 na youtube.com/html5 , ale jeśli & html5 = 1 nie jest określony jako parametr odtwarzacza umieszczonego na stronie, flash jest ładowany, gdy określę parametr odtwarzacza HTML5 jest ładowany. System operacyjny: Linux, Firefox 33 64-bitowy.
Czar
Właśnie przetestowałem html5=1przeglądarkę Firefox 33.0.2 i działa dobrze (i nie wymaga, aby użytkownicy włączali ustawienie HTML5 na YouTube). Bez tego YouTube domyślnie wysyła wersję Flash.
Simon East
Parametr nadal działa, ale włączenie go na stronie html5 powoduje, że youtube domyślnie ma html5, co jest lepsze.
alanh
4

Próbowałem użyć kodu osadzania iframe i pojawił się odtwarzacz HTML5, jednak z jakiegoś powodu iframe całkowicie zepsuło moją witrynę.

Bawiłem się starym kodem osadzania obiektów i działa on doskonale. Więc jeśli masz problemy z iframe, oto kod, którego użyłem:

<object width="640" height="360">
<param name="movie" value="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3"/>
<param name="allowFullScreen" value="true"/>
<param name="allowscriptaccess" value="always"/>
<embed width="640" height="360" src="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3" class="youtube-player" type="text/html" allowscriptaccess="always" allowfullscreen="true"/>
</object>

mam nadzieję, że to komuś się przyda

alejandro
źródło
YouTube <object>jest wycofywany z końcem stycznia. Użyj <iframe>zamiast tego.
Samuel Elh
<object>nadal działa, w rzeczywistości element iframe po prostu go zawiera.
RozzA
2

Jeśli korzystasz z interfejsu API osadzania iframe, możesz podać html5:1jeden z playerVarsargumentów, na przykład:

player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: '<VIDEO ID>',
    playerVars: {
        html5: 1
    },
});

Całkowicie działa.

samson
źródło
0

Znacznik wbudowany służy do dodawania kolejnego źródła dokumentu do aktualnego elementu HTML.

W Twoim przypadku film z youtube i musimy określić typ html (4 lub 5) do przeglądarki zewnętrznie do linku

więc dodaj? html = 5 na końcu linku .. :)

ashwinrishipj
źródło