2017-03-17 1 views
0

배열에 비디오 목록이 있는데 현재 플레이어가 끝나면 목록에서 다른 비디오를 재생할 수있게하려고합니다. 내가 가지고있는 문제는 재생할 새 비디오를 선택하는 대신 끝나는 한 동일한 비디오를 반복한다는 것입니다. 나는 비슷한 질문을하고 havent 그것이 작동하도록 아무것도 찾을 수있게되었습니다. 모든 조언을 부탁드립니다!목록에서 임의의 비디오를 재생하는 방법?

var tag = document.createElement('script'); 

tag.src = "https://www.youtube.com/iframe_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. 
function rotateYT() { 
    var videos = [ 
     'be0T_owA1PU', 
     'Kp7eSUU9oy8', 
     'Th0V-fxo9CE', 
    ]; 

    var index=Math.floor(Math.random() * videos.length); 
    return videos[index]; 
} 

var player; 
function onYouTubeIframeAPIReady() { 
    var videoID = rotateYT(); 
    player = new YT.Player('player', { 
     height: '300', 
     width: '300', 
     videoId: videoID, 
     events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
     } 
    }); 
} 

// 4. The API will call this function when the video player is ready. 
function onPlayerReady(event) { 
    player.setPlaybackRate(1); 
    event.target.playVideo(); 
} 

// 5. This should play another random video 
function onPlayerStateChange(event) {   
    if(event.data === 0) { 
     event.target.setShuffle(true); 
     event.target.playVideo(); 
    } 
} 

나는 아마 jsfiddle 필자가

https://jsfiddle.net/bbasham/L20k7x1o/2/

+0

질문에서 'javascript'는 무엇이 문제입니까? – guest271314

답변

0

문제에 노력하고 그래서 여기에 잘못에서 코드입니다 넣어 당신이 비디오의 재생 목록을 사용하여 YT 플레이어를 이야기하지 않는 것입니다. 대신 한 번에 하나의 비디오 ID 만 설정하므로 shuffle 메서드는 작동하지 않습니다. 당신은 당신이 다시 시작하기 전에 비디오 ID를 교환 있도록 방법을 업데이트해야합니다 : 플레이어가 새로운 비디오를 잡아 플레이어를 다시 시작하기 전에 소스로 설정하게됩니다

// 5. This should play another random video 
function onPlayerStateChange(event) {   
    if(event.data === 0) { 
     //event.target.setShuffle(true); //useless unless the player has a playlist 
     event.target.loadVideoById(rotateYT()); 
     event.target.playVideo(); 
    } 
} 

. 또는 재생 목록을 제공 한 다음 셔플을 사용할 수도 있습니다.

Documentation

+0

응답 해 주셔서 감사합니다. 재생 목록을 제공하고 재생 목록에 더 많은 동영상을 추가하면 동영상을 추가 할 때마다 코드가 새 동영상을 가져올 수 있습니까? 아니면 코드를 업데이트해야합니까? 궁극적으로 나는 비디오의 재생 목록을 만들 수 있었고, 그것들이 무질서한 것을 잡을 수 있기를 원했고, 이것이 최선의 방법인지 아닌지 나는 알지 못했다. –

관련 문제