2014-04-11 3 views
0

페이지로드의 div에 처음 숨겨진 비디오가 있습니다. 그런 다음 이미지를 클릭하면 열리고 자동 재생됩니다.Youtube Api + Fancybox + 자동 재생 비디오를 재생하지 않고 재생

그러나 브라우저에서 플래시를 사용하지 않으면 비디오가 열리지 않고 재생됩니다. 그래서 나는 오디오 만들을 수는 있지만 비디오는 듣지 못한다.

<div id="video-home-popup" style="display:none; padding:0px;"> 
<div id="player"></div> 
<script type="text/javascript"> 
    var tag = document.createElement('script'); 
    tag.src = "http://www.youtube.com/player_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    var player; 

    function onYouTubePlayerAPIReady() { 
     player = new YT.Player('player', { 
      playerVars: { 
       modestbranding: true, 
       theme: 'light', 
       rel: 0, 
       wmode: "opaque", 
       autoplay: '1' 
      }, 
      height: '480', 
      width: '640', 
      videoId: 'qLFQUdmAkcQ', 
      events: { 
       'onReady': onPlayerReady, 
       'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

    function onPlayerReady(event) { 
     /// event.target.playVideo(); 
    } 

    function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING) { 
      _gaq.push(['_trackEvent', 'Videos', 'Play', 
      player.getVideoUrl()]); 
     } 
     if (event.data == YT.PlayerState.PAUSED) { 
      _gaq.push(['_trackEvent', 'Videos', 'Paused', 
      player.getVideoUrl()]); 
     } 
     if (event.data == YT.PlayerState.ENDED) { 
      _gaq.push(['_trackEvent', 'Videos', 'Watch to End', 
      player.getVideoUrl()]); 
     } 
    } 
    // ]]> 
</script> 
</div> 

Fancybox 코드 : 비디오 엽니 다

var vid=jQuery; 
vid.noConflict(); 
    vid(document).ready(function() { 
     vid('.fancyboxvideo').fancybox({ 
      padding : 0, 
      openEffect : 'none', 
      closeEffect : 'none', 
      prevEffect : 'none', 
      nextEffect : 'none', 
      autoSize : false, 
      fitToView : false, 
      width  : '640px', 
      height  : '480px', 
      arrows : false, 
      wmode  : 'opaque', 
      helpers : { 
      media : {}, 
      buttons : {}, 
      overlay : { 
      css : { 
      'background' : 'rgba(0,0,0,0.9)' 
       } 
      } 
     } 
    }); 
}); 

링크 :

<a class="fancyboxvideo" href="#video-home-popup"></a> 
+0

어떤 브라우저입니까? 난 그냥 최신 파이어 폭스와 크롬으로 테스트하고 비디오가 자동 실행되지 않았다. –

+0

인라인 비디오를 숨겨 놓는 것은 좋지 않다고 생각합니다. 페이지로드에 오버 헤드를 추가합니다. 비디오를 볼 필요가있을 때까지 팬시 박스 (fancybox)에서 비디오를 부르는 이유는 무엇입니까? 다음은'beforeShow' 콜백 내에서의 how-to입니다. – JFK

+0

@ViniciusPinto 제 사과 - 자동 실행 코드를 0으로 설정했습니다.이 코드를 1로 변경했습니다. –

답변

-1

autoplay 옵션은 0이어야 여기

내가 사용하고 유튜브 API 코드 , onComplete Fancybox 콜백에서 player.playVideo()으로 전화하십시오.

+0

나는이 문제를 이해하지 못했다고 생각한다.) 또한, 질문의 태그를 확인하면,'fancybox-2'와'onComplete'는 그 버전에 유효한 옵션이 아니라고한다. – JFK

+0

설명해 주실까요? 나는 그것이 필요할 때만 비디오를로드하는 것이 더 좋다고 말하는 OP에 대한 귀하의 의견에 동의하지만, 숨김으로로드하려면 playVideo()를 사용하여 무엇이 잘못 되었습니까? (콜백 이름 외에, 나는 새 버전에서'afterShow'라고 믿는다.) –

+0

OP는'플래시가 브라우저에서 활성화되지 않은 경우'; 'playVideo()'는이 시나리오에서이 문제를 해결하지 못하는 것 같습니다. – JFK