2013-06-21 8 views
25

Po ustawieniu autoodtwarzania na wartość true w przypadku filmu YouTube (IFrame API) w mojej witrynie nie działa. Cała dokumentacja mówi, że Apple wyłącza autoodtwarzanie na ios ze względu na szerokość pasma.Jak automatycznie odtwarzać filmy na iOS na youtube.com

Widzę jednak, że filmy są odtwarzane automatycznie (bez klikania elementu wideo) na youtube.com na iPadzie. W jaki sposób serwis YouTube działa? Trudno byłoby sobie wyobrazić, że Apple robi coś specjalnego tylko dla YouTube.

+0

Nie duplikat. OP pyta, dlaczego autoodtwarzanie działa, jeśli odwiedzasz stronę domową youtube.com na iOS (to też robi dla mnie). –

Odpowiedz

-3

Nie można tego zrobić. Z różnych powodów (w tym, ale nie ograniczając się do wykorzystania danych), Apple nie zezwala na automatyczne odtwarzanie filmów.

Patrz:

Youtube embedded video: autoplay feature not working in iphone

+4

To nie odpowiada na pytanie i nie jest duplikatem. OP pyta, dlaczego autoodtwarzanie * działa *, jeśli odwiedzisz stronę domową youtube.com na iOS (to też robi dla mnie). – mpobrien

4

Wydaje się, że zespół YouTube wykorzystuje interakcję użytkownika, gdy zawory/kliknie przycisk wideo do upoważniania do reprodukcji.

Pamiętaj, że youtube.com to SPA (Single Page Application), więc nie ma przeładowania ani przekierowania strony.

Na youtube.com nie włączono autoodtwarzania.

+0

A więc manipulują DOM i adresem URL, aby wyglądały tak, jakbyś poruszał się między różnymi stronami? –

+2

Tak, z prostym językiem javascript i nawigacją zarządzającą za pomocą "history pushState". Sprawdź to, aby uzyskać więcej informacji o autoodtwarzaniu: http://stackoverflow.com/questions/29894406/initialize-videojs-from-dummy-element-using-require-js –

-2

Nie testowałem tego, ale możesz być w stanie użyć Javascriptu i wywołać funkcję odtwarzania dla odtwarzacza, lub po prostu kliknąć element po załadowaniu strony.

2

Możesz to zrobić za pomocą javascript.

Oto przykład:

<div class="video-container"> 
    <div id="player"> </div> <!--<iframe width="960" height="720" src="//www.youtube.com/embed/5YptIh_avrM?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>--> 

</div> 

<script> 
    // 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 <iframe> (and YouTube player) 
    // after the API code downloads. 
    var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '720', 
     width: '960', 
     videoId: 'YOUR_ID_HERE', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 



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

    // 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) { 

    } 
    function stopVideo() { 
    player.stopVideo(); 
    } 
</script> 
+0

Testowane i nie działa w Safari na iOS 9.1 i Chrome na iOS 9.1 Zobacz odpowiedź Aitor Aznara Álvareza na to, jak YouTube robi to w wersji mobilnej. – Gumbah

+0

Poważnie nienawidzę ios 9.1 .. dziękuję za komentarz, w momencie pisania ios nadal pracował, ale to było przed tym "downgrade". –

+0

Działa to w przeglądarce na laptopie/komputerze stacjonarnym. Nie działa w przeglądarce mobilnego systemu iOS. Może lub nie działa na Androida. – mjwunderlich

Powiązane problemy