2013-02-26 10 views
40

私の問題では、私には1つのリンク<a href="http://www.youtube.com/embed/YT-ID" class="overlay_video"></a>があります。ファンシーボックスオーバーレイウィンドウのリンクをクリックしてビデオを再生したいと思います。これは問題ではありません。問題はパラメータです(例: "autoplay"または "autohide")。埋め込みHTML5プレーヤーを搭載したモバイルデバイスでYoutubeの自動再生が動作しない

次のリンクは機能しません。

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

をオーバーレイウィンドウが開きますが、ビデオは自動的に再生されません。

編集:携帯端末でHTML5プレーヤーを使用したいと考えています。デスクトップブラウザでは、パラメータを使用して動作しますが、モバイルデバイスでは動作しません。

+0

あなたの構文は正確fancyboxのデモのようにあるような問題は、どこか別の場所でなければなりません: '' Youtube (iframe)そして、自動再生に問題はありません。 fancyboxはどのように呼び出すのですか? – orzechow

+0

fancyboxを呼び出すには、$( "。overlay_video")のような標準スニペットを使用します({ 'width':95%、 [..] 'type': 'iframe' }); – theowi

+0

私は細部を忘れてしまった。新しいInfosの記述。ごめんなさい。 – theowi

答えて

45

iOSデバイス(iPhone、iPad、iPod touch)とAndroidでは自動再生できません。

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

+0

ありがとうございました:)後でアンドロイドタブレットでテストします。 – theowi

+0

ところで、autohideやrelのような他のパラメータは完全に機能しています。 :) – theowi

+0

Appleは最終的にモバイルデバイス上の不要なトラフィックを回避したいので、自動再生機能にのみ影響します。 – orzechow

1

ありユーチューブの自動再生を行うための方法があり、かつ完全なプレイリストで再生を参照してください。 Android用のAdblockブラウザを入手してから、YouTubeのWebサイトにアクセスし、デスクトップ版のページ用に設定し、Adblockブラウザを閉じてからもう一度開くと、自動再生が動作するデスクトップ版になります。

デスクトップ版を使用すると、AdBlockも機能するようになります。モバイル版ではスタンドアロンのYouTubeプレーヤーが呼び出されるため、ページのデスクトップ版が必要なため、自動再生が機能し、広告のブロックが機能します。

+0

ご意見ありがとうございます。 この方法は、任意の - 名前付き顧客のユーザーのためのものですが、 "標準"の顧客のための方法ではありません。 – theowi

4

以下のコードをご覧ください。 モバイルデバイスとタブレットデバイスで動作確認済みです。

 


(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

こんにちは!私はあなたのコードを試して、実際に動作します!よくやった!しかし、私はSafari 8のiPadでビデオをロードして終了しないで終了しない限り、それを停止して再生することを発見した。誰か提案はありますか? (トリガーの一時停止とsetTimeoutを使用した再生は動作しません...) –

+0

iOSのアップデートがあったようですが、自動再生したい場合は、再生する前にビデオをミュートする必要があります。もしあなたがevent.target.mute()を呼び出すならば。直前のevent.target.playVideo();あなたは良くなるはずです。 – skribbz14

+0

このソリューションでは、私は最新のSafari OSの高シエラでYouTubeを自動再生することができましたが、iPhoneではあまり運がありません。 – ramin

関連する問題