2013-08-16 3 views
3

Как использовать опцию loadPlaylist так, чтобы следующее видео воспроизводилось автоматически? Мой код, как это, но он не будет работать, не может воспроизводить видео:Об использовании YouTube Player API loadPlaylist

<div id="player"></div> 
<script> 
    var tag = document.createElement('script'); 
    tag.src = "https://www.youtube.com/iframe_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     loadPlaylist:{ 
     listType:'playlist', 
     list:['4Ivdp8kj_0U','4MJRS-cLozU'], 
     index:parseInt(0), 
     suggestedQuality:'small' 
     }, 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 
    function onPlayerReady(event) { 
    event.target.playVideo(); 
    } 
    var done = false; 
    function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING && !done) { 
    // setTimeout(stopVideo, 60000); 
     done = true; 
    } 
    } 
    function stopVideo() { 
    player.stopVideo(); 
    } 
</script> 

Я хочу, чтобы добиться эффекта этого примера: http://www.youtube.com/watch?v=0DdCoNbbRvQ&list=RD02_VTY8ftr1vY

Спасибо очень много.

+0

Что «это не будет работать» означает? Не могли бы вы поместить это в jsfiddle вместе с вашим HTML? http://jsfiddle.net –

+0

У меня есть этот код. – user2688100

ответ

5

Вчера я столкнулся с этим вопросом. Прежде всего, в вашей функции onPlayerReady вам нужно позвонить loadPlaylist, так как это вызовет воспроизведение плейлиста и начнет его воспроизводить.

Однако проблема, с которой я столкнулся, заключается в том, что с использованием синтаксиса объекта при вызове списка воспроизведения, состоящего из массива идентификаторов видео, я получаю сообщение об ошибке. После некоторого Googling я нашел этот Stack Overflow question, который предложил использовать синтаксис аргументов и, казалось, исправить его. См. Здесь разницу: https://developers.google.com/youtube/js_api_reference#Playlist_Queueing_Functions

Я взял ваш код и сменил onPlayerReady на использование функции loadPlaylist с синтаксисом аргументов, и теперь он работает. См jsfiddle здесь: http://jsfiddle.net/rustybailey/9kFyx/

+0

Это сработало и для меня. – swajak

0

index:parseInt(0) - этот параметр не является обязательным: по индексу по умолчанию в списке 0

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/16875792) – Blackbam

Смежные вопросы