2013-02-26 13 views
40

Na mój problem mam jeden link <a href="http://www.youtube.com/embed/YT-ID" class="overlay_video"></a>. Chcę odtworzyć wideo, klikając link w oknie nakładki ozdobnej. To nie jest problem. Problem stanowią parametry, na przykład "autoplay" lub "autohide".Autoodtwarzanie w YouTube nie działa na urządzeniach mobilnych z wbudowanym odtwarzaczem HTML5

Poniższy link nie działa:

<a href="http://www.youtube.com/embed/YT-ID?autoplay=1" class="overlay_video"></a> 

Nakładka-Okno otwarte, ale film nie jest odtwarzany automatycznie.

EDYCJA: Chcę używać odtwarzacza HTML5 na urządzeniach mobilnych. W przeglądarce na komputerze działa z parametrami, ale nie na urządzeniach mobilnych.

+0

Problem musi być gdzieś indziej, jak składnia jest dokładnie tak, jak w demo fancybox: '' Youtube (iframe) I nie ma problemu z autoodtwarzania. Jak wzywać fancybox? – orzechow

+0

Aby wywołać fancybox, używam standardowego fragmentu, na przykład $ (". Overlay_video"). Fancybox ({ "szerokość": 95%, [..] "typ": "iframe" }); – theowi

+0

Zapomniałem małego szczegółu. Nowe informacje w opisie. Przepraszam. – theowi

Odpowiedz

45

Okazuje się, że autoodtwarzania nie można wykonać na urządzeniach z systemem iOS (iPhone, iPad, iPod touch) i Android.

Zobacz https://stackoverflow.com/a/8142187/2054512 i https://stackoverflow.com/a/3056220/2054512

+0

Dziękuję :) Przetestuję to później na moim tablecie z Androidem. – theowi

+0

Przy okazji - pozostałe parametry, takie jak autohide lub rel są w pełni funkcjonalne. :) – theowi

+0

Tak, ponieważ Apple chce uniknąć w końcu niepotrzebnego ruchu na swoich urządzeniach mobilnych - to wpływa tylko na funkcjonalność autoplay;) – orzechow

1

Jest na to sposób, aby youtube autoodtwarzanie i kompletne listy grać przez. Pobierz przeglądarkę Adblock na Androida, a następnie przejdź do strony youtube i skonfiguruj ją do wersji strony na komputery, zamknij przeglądarkę Adblock, a następnie otwórz ją ponownie, a będziesz miał wersję na komputery, w której będzie działać autoodtwarzanie.

Używanie wersji komputerowej będzie również oznaczać, że AdBlock będzie działał. Wersja mobilna wywołuje autonomiczny odtwarzacz YouTube, dlatego chcesz wersję strony na komputery, aby autoodtwarzanie działało, więc blokowanie reklam będzie działało.

+0

Dziękuję za komentarz. Ta metoda jest dla każdego - nazwałem - użytkownikiem klienta - ale nie jest sposobem dla żadnego "standardowego" klienta. – theowi

4

Zobacz kod poniżej. Testowane i znalezione działające na urządzeniach mobilnych i tabletach.

 


(video player) will replace this tag. --> 
    

    
     // 2. This code loads the IFrame Player API code asynchronously. 
     var tag = document.createElement('script'); 

     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

     // 3. This function creates an (and YouTube player) 
     // after the API code downloads. 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: 'M7lc1UVf-VE', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 

     // 4. The API will call this function when the video player is ready. 
     function onPlayerReady(event) { 
     event.target.playVideo(); 
     } 

     // 5. The API calls this function when the player's state changes. 
     // The function indicates that when playing a video (state=1), 
     // the player should play for six seconds and then stop. 
     var done = false; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 6000); 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    
    


+0

Cześć! Próbowałem twojego kodu i to działa! Dobra robota! Jednak znalazłem wyjątek w Safari 8 na iPadzie, który zaczyna ładować wideo i nigdy się nie kończy, chyba że zatrzymasz, a następnie go zagrasz. Czy ktoś ma jakieś sugestie? (Przerwa w trybie wyzwalania i odtwarzanie przy użyciu funkcji setTimeout nie działa ...) –

+0

Wygląda na to, że doszło do aktualizacji systemu iOS, która wymaga wyciszenia wideo przed jego odtworzeniem, jeśli chcesz go automatycznie odtworzyć. jeśli wywołasz event.target.mute(); tuż przed event.target.playVideo(); powinieneś być dobry. – skribbz14

+0

Dzięki temu rozwiązaniu udało mi się autoodtwarzać youtube na najnowszym systemie operacyjnym Safari, ale bez powodzenia na iPhone. – ramin