2012-01-21 37 views
6

Tôi đã video sau embeded trong WordPressKiểm tra xem video trên YouTube đang chơi và chạy kịch bản

<iframe id="video" width="640" height="360" src="http://www.youtube.com/embed/xxxxxx?enablejsapi=1" frameborder="0" allowfullscreen></iframe> 

Và nó bên trong một thanh trượt SlideDeck, mà tôi muốn dừng lại khi ai đó nhấp vào video. Tôi không thể tìm ra cách để có được dòng mã này

self.pauseAutoPlay = true; 

để chạy khi video đang phát.

Tôi rất cần một số trợ giúp.

Chỉnh sửa: Vì tôi không phải là người dùng cuối. Tôi cần một thứ sẽ hoạt động với mã nhúng mặc định từ YouTube.

Trả lời

21

Bạn cần sử dụng API iFrame của YouTube. Hãy nhớ rằng, tôi chỉ biết những điều cơ bản về JavaScript của Javascript và do đó, điều này có thể có hiệu quả hơn rất nhiều.

Bạn họ nhúng iframe của bạn như bình thường

<iframe id="player" width="640" height="360" src="http://www.youtube.com/embed/TJ2X4dFhAC0?enablejsapi" frameborder="0" allowfullscreen></iframe> 

Nhưng với một vài thay đổi. Nó cần phải có một ID, 'player', và bạn cần phải gắn thêm ?enablejsapi vào cuối URI nguồn.

Sau đó bạn sẽ cần phải chạy kịch bản sau đây để tải các API JS cũng như creat người chơi

// 2. This code loads the IFrame Player API code asynchronously. 
     var tag = document.createElement('script'); 
     tag.src = "http://www.youtube.com/player_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 onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'u1zgFlCw8Aw', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

ý rằng new YT.Player('player' phải phù hợp với ID iframe của bạn và videoId: 'u1zgFlCw8Aw' đó phải phù hợp với src URI.

Sau đó, bạn có thể chạy các script như

var myPlayerState; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      // DO THIS 
     } 
     myPlayerState = event.data; 
     } 

if (myPlayerState == 1){ 
    // PAUSE SLIDER 
} 
+0

không hoạt động cho tôi: ( – nicogaldo

+4

@nicogaldo Câu trả lời này là khoảng 4 tuổi vào thời điểm này.Bạn có thể muốn thử tìm kiếm nhiều hơn một chút.Bạn có thể thử nhìn vào câu trả lời này http: // stackoverflow .com/a/24040526/142410 –

8

Bạn cần nhúng youtube trực tiếp với đèn flash:

http://code.google.com/apis/youtube/js_api_reference.html#Embedding

sau đó, bạn có thể sử dụng youtube javascript API.

Mã của bạn có thể là một cái gì đó như thế:

<script type="text/javascript" src="swfobject.js"></script>  
<div id="ytapiplayer"> 
You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 

<script type="text/javascript"> 

var params = { allowScriptAccess: "always" }; 
var atts = { id: "myytplayer" }; 
swfobject.embedSWF("http://www.youtube.com/v/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer&version=3", 
        "ytapiplayer", "425", "356", "8", null, null, params, atts); 


var player; 

function onytplayerStateChange(newState) { 
    if (newState == 1) 
     callPlay(); 
    else if (newState == 2) 
     callPause(); 
} 

function callPlay() { 
    //video is play 
} 

function callPause() { 
    //video is paused 
} 

</script> 

T.B. swfobject.js soure bạn có thể tìm thấy here

+0

Cảm ơn đã gợi ý nhưng điều đó dường như không hợp tác với WordPress thực sự tốt. Tôi cũng hy vọng cho một giải pháp mà không yêu cầu một workaround, như tôi không phải là người dùng cuối. Tôi cần một thứ sẽ hoạt động với mã nhúng mặc định từ YouTube. –

+0

Bạn có thể thử: [iframe API] (http://code.google.com/apis/youtube/iframe_api_reference.html#Events). Nhưng tôi không có bất kỳ kinh nghiệm với rằng – neworld

Các vấn đề liên quan