2016-08-17 9 views
0

です。Youtube Iframe APIは、最初に動作するのは

YouTube動画は隠しdivの中にあります。ボタンやビデオの

クリックして、表示されませんが、私は一時停止ボタン、2回目に再び非表示(必須および作業)

へのdivの必要性をクリックしたときに、私は映像が表示され、ビデオを再生ボタンをクリックしますが、どちらも自動再生も一時停止も非表示イベントを引き起こしていません。

なぜですか?

JSFIDDLE:https://jsfiddle.net/u19ut5gt/6/

HTML

<div id="fw16-liam"> 
      <div class="fw16-button playvideo">Play Video</div> 
      <div id="liam-video"><div id="ytplayer"></div></div> 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 

Javascriptを

$("#fw16-liam .playvideo").click(function(){ 
       $("#liam-video").fadeIn(1000); 
       runPlayer('0m9hYRUV920'); 
      }); 

      if(document.getElementById('iframe_api') === null){ 
       var tag = document.createElement('script'); 
       tag.src = "https://www.youtube.com/iframe_api"; 
       tag.id = "iframe_api"; 
       var firstScriptTag = document.getElementsByTagName('script')[0]; 
       firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
      } 

      function runPlayer(video_id){ 
       var player; 
       player = new YT.Player('ytplayer', { 
        playerVars: { 
         autoplay: 1, 
         html5: 1, 
         controls: 1, 
         showsearch: 0, 
         showinfo: 0, 
         loop: 1, 
         fs: 0 
        }, 
        height: '300', 
        width: '487', 
        videoId: video_id, 
        events: { 
         onStateChange: function (event) { 
          // Loop after video end 
          if(event.data === YT.PlayerState.ENDED){ 
           event.target.playVideo(); 
          }   

          // If user, pause video, then this hide. 
          if(event.data == 2){ 
           event.target.stopVideo(); 
           $("#liam-video").fadeOut(200); 
          } 
         } 
        } 
       }); 
      } 

CSS

.playvideo{width:112px; height: 37px; color: white;} 
.fw16-button {cursor: pointer;cursor: hand; background-color: red;} 
#liam-video{display:none; background: #9e7969; width: 487px; height:677px; position: relative; left: 0px; top: 20px; border: none;} 
#liam-video iframe{border:none;} 

答えて

1

playerは一度だけ初期化する必要があります。次にビデオを再生する必要がある場合は、playVideoに電話してください。

var player; 
function runPlayer(video_id){ 
    if(player) { 
    player.playVideo(); 
    return player; 
    } 
    player = new YT.Player('ytplayer', { 
    ... 
    } 
} 

チェックアウトこのfiddle:あなたのrunPlayer機能では、このような何かを試してみてください。

+1

これだけです!ありがとうございました。それは完全に動作します –

関連する問題