2017-02-19 1 views
0

のランダムな順序で再生しないようにしています。代わりに配列の順番で再生してループバックします。誰もこれを修正する方法を知っていますか?ランダムに再生しないように配列を変更してください

私は非常にJavaScriptに新しいので、この問題は恐ろしいですかハハに尋ねる場合はごめんなさい。

ありがとうございました!

<div id="player"></div> 

<script src="http://www.youtube.com/player_api"></script> 

<script> 

    var videos = [ 
     '3H3odKtfrTo', 
     'BxjMGiN0jJY', 
     'iGC9n0NAvDU' 
    ] 


    var index=Math.floor(Math.random() * videos.length); 

    // create youtube player 
    var player; 
    function onYouTubePlayerAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: '9yT7KcHCrRY', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

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

    function playNewVideo(id){ 
     player.loadVideoById(videos[index]); 
     event.target.playVideo(); 
     playNewVideo(randomID) 
    } 

    // when video ends 
    function onPlayerStateChange(event) {   
     if(event.data === 0) { 
      //generate new random number 
      index=Math.floor(Math.random() * videos.length); 
      playNewVideo(); 
     } 
    } 

</script> 

答えて

0

ちょうど行います

// In the beginning 
var index = 0 
// After video is done playing. 
index += 1 
if(index < videos.length) { // If its not the last item on the list 
    playNewVideo() 
} else { 
    // Go back to the start 
    index = 0 
    playNewVideo() 
} 

あなたがリストによると、ランダムな映像に開始して再生したい場合の操作を行います。

// In the beginning 
var index = Math.floor(Math.random() * videos.length) 
+0

パーフェクト!それは簡単です。ありがとうございました。 –

+0

もう少し追加したので、配列の最後を叩いてもエラーにはなりません。 –

+0

ねえ、それはお互いの配列をスキップしているようです。何故ですか?上記のコードを更新しました。ありがとうございました。 –

関連する問題