2011-01-19 30 views
9

Tôi phải tạo một loại trình quay video youtube bằng jquery. Tôi đã nhìn xung quanh và dường như không có plugin nào phù hợp với yêu cầu. Thậm chí không phải là một giải pháp.Bắt sự kiện khi video flash được thực hiện bằng cách sử dụng javascript

Có lẽ tôi sẽ cố gắng thực hiện điều này. Vì vậy, bây giờ, làm thế nào tôi có thể xác định rằng một video youtube được thực hiện chơi và tự động chơi tiếp theo, sử dụng Jquery, hoặc chỉ đơn giản là chỉ javascript?

Và nếu bạn tình cờ biết một plugin có thể hữu ích, vui lòng chỉ ra.

Cảm ơn

+1

Không YouTube có một chức năng danh sách phát nơi bạn có thể xếp hàng video để tự động xoay? - ** EDIT ** Trường hợp tại điểm: http://www.youtube.com/custom_player/ –

Trả lời

12

Trước tiên, bạn phải chắc chắn các cầu thủ youtube bạn đang nhúng hỗ trợ javascript bằng cách thông qua enablejsapi=1 như một get param. Đây là cách tôi chèn một máy nghe nhạc (có chrome) sử dụng SWFObject:

var player_id = "your_player_id"; 
    var params = { allowScriptAccess: "always" }; 
    var url = "http://www.youtube.com/apiplayer?enablejsapi=1&version=3&playerapiid=" + player_id; 
    swfobject.embedSWF(url, player_id, '320', '240', "9.0.0", null, null, params, {'id': player_id}); 

Sau đó, bạn cần phải thêm một chức năng toàn cầu đó được gọi là khi các cầu thủ đã sẵn sàng, và trong đó thêm một người biết lắng nghe khi một đoạn video hoàn tất:

var player = null; 

    function onYouTubePlayerReady(player_id) { 
     player = document.getElementById(player_id); 
     player.addEventListener('onStateChange', 'playerStateChanged'); 
     player.loadVideoById(youtube_video_id); 
    }; 

    function playerStateChanged(state) { 
     // State code 0 means playback ended 
     if (state == 0) { 
     player.loadVideoById(next_video_id); 
     } 
    }; 

Tôi đã viết mã này cho bookmarklet danh sách phát trên youtube của mình. Dưới đây là một liên kết nếu bạn muốn có một ví dụ làm việc: http://zaius.github.com/youtube_playlist/

Và nếu bạn muốn làm bất cứ điều gì nhiều hơn trong chiều sâu, đây là youtube javascript tham khảo nơi tôi làm việc ra làm thế nào để làm tất cả điều này: http://code.google.com/apis/youtube/js_api_reference.html

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