2013-02-26 5 views
40

Zu meinem Problem habe ich einen Link <a href="http://www.youtube.com/embed/YT-ID" class="overlay_video"></a>. Ich möchte das Video abspielen, indem ich auf den Link in einem Fancybox-Overlay-Fenster klicke. Das ist kein Problem. Das Problem sind die Parameter, zum Beispiel "Autoplay" oder "Autohide".Youtube Autoplay funktioniert nicht auf mobilen Geräten mit eingebettetem HTML5-Player

Der folgende Link nicht funktionieren:

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

Die Overlay-Fenster geöffnet, aber das Video abgespielt wird nicht automatisch.

EDIT: Ich möchte den HTML5 Player auf mobilen Geräten verwenden. In einem Desktop-Browser funktioniert es mit den Parametern, aber nicht auf mobilen Geräten.

+0

Das Problem muss irgendwo anders sein, als Ihre Syntax genau wie in der fancybox Demo ist: '' Youtube (iframe) Und es gibt kein Problem mit dem Auto. Wie rufen Sie die Fancybox auf? – orzechow

+0

die fancybox aufzurufen, verwende ich ein Standard-Schnipsel, zB $ ("overlay_video.") Fancybox ({ 'width': 95%, [..] 'Typ': 'iframe' }). – theowi

+0

Ich habe ein kleines Detail vergessen. Neue Infos in der Beschreibung. Es tut uns leid. – theowi

Antwort

45

Wie sich herausstellt, kann Autoplay nicht auf iOS-Geräten (iPhone, iPad, iPod touch) und Android durchgeführt werden.

Siehe https://stackoverflow.com/a/8142187/2054512 und https://stackoverflow.com/a/3056220/2054512

+0

Danke :) Ich werde es später auf meinem Android Tablet testen. – theowi

+0

Übrigens - die anderen Parameter, wie Autohide oder Rel sind voll funktionsfähig. :) – theowi

+0

Ja, weil Apple schließlich unnötigen Verkehr auf ihren mobilen Geräten vermeiden will - das betrifft nur die Autoplay-Funktionalität;) – orzechow

1

Es gibt einen Weg youtube runter zu machen, und komplette Wiedergabelisten durch spielen. Rufen Sie den Adblock-Browser für Android auf, gehen Sie dann zur youtube-Website und konfigurieren Sie ihn für die Desktop-Version der Seite, schließen Sie den Adblock-Browser und öffnen Sie ihn erneut. Sie haben dann die Desktop-Version, in der Autoplay funktioniert.

Die Verwendung der Desktop-Version bedeutet auch, dass AdBlock funktioniert. Die mobile Version ruft den eigenständigen YouTube-Player auf. Daher möchten Sie die Desktop-Version der Seite, damit die automatische Wiedergabe funktioniert und die Anzeigenblockierung funktioniert.

+0

Vielen Dank für Ihren Kommentar. Dieser Weg ist für jeden - ich benannte - Kundenbenutzer - aber kein Weg für irgendeinen "Standard" -Kunden. – theowi

4

Schauen Sie sich den folgenden Code an. Getestet und funktioniert auf mobilen und Tablet-Geräten.

 


(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

Hallo! Ich habe Ihren Code ausprobiert und es funktioniert tatsächlich! Gut gemacht! Allerdings habe ich eine Ausnahme in Safari 8 auf dem iPad gefunden, die beginnt, das Video zu laden und endet nie, es sei denn, Sie stoppen und spielen es dann. Hat jemand irgendwelche Vorschläge? (Triggerpause und Wiedergabe mit setTimeout funktioniert nicht ...) –

+0

Es scheint, als ob es ein Update für iOS gab, bei dem Sie das Video stummschalten müssen, bevor Sie es abspielen, wenn Sie es automatisch abspielen lassen wollen. wenn Sie event.target.mute() aufrufen würden; direkt vor event.target.playVideo(); du solltest gut sein. – skribbz14

+0

Mit dieser Lösung habe ich es geschafft, Youtube auf dem neuesten Safari-Betriebssystem hoch Sierra aber nicht viel Glück auf iPhone automatisch zu spielen. – ramin