2013-10-23 11 views
0

트랙 목록이있는 웹 환경을위한 오디오 플레이어를 만들고 있습니다. 다음은 오디오 플레이어를 제어하는 ​​코드입니다.무작위로 jquery에서 트랙을 선택하십시오. 페이지의 오디오 재생 목록 새로 고침

$(document).ready(function() { 
jQuery(function($) { 
      var supportsAudio = !!document.createElement('audio').canPlayType; 
      if(supportsAudio) { 
       var index = 0, 
       playing = false; 
       mediaPath = 'audio/', 
       extension = '', 
       tracks = [ 
        {"track":1,"name":"track1","length":"00:55","file":"track1"}, 
        {"track":2,"name":"track2","length":"00:55","file":"track2"}, 
        {"track":3,"name":"track3","length":"00:55","file":"track3"}, 
        {"track":4,"name":"track4","length":"00:55","file":"track4"}, 
        {"track":5,"name":"track5","length":"00:55","file":"track5"} 
       ], 
       trackCount = tracks.length, 
       npAction = $('#npAction'), 
       npTitle = $('#npTitle'), 
       audio = $('#audio1').bind('play', function() { 
        playing = true; 
        npAction.text('Now Playing:'); 
       }).bind('pause', function() { 
        playing = false; 
        npAction.text('Paused:'); 
       }).bind('ended', function() { 
        npAction.text('Paused:'); 
        if((index + 1) < trackCount) { 
         index++; 
         loadTrack(index); 
         audio.play(); 
        } else { 
         audio.pause(); 
         index = 0; 
         loadTrack(index); 
        } 
       }).get(0), 
       li = $('#plUL li').click(function() { 
        var id = parseInt($(this).index()); 
        if(id !== index) { 
         playTrack(id); 
        } 
       }), 
       loadTrack = function(id) { 
        $('.plSel').removeClass('plSel'); 
        $('#plUL li:eq(' + id + ')').addClass('plSel'); 
        npTitle.text(tracks[id].name); 
        index = id; 
        audio.src = mediaPath + tracks[id].file + extension; 
       }, 
       playTrack = function(id) { 
        loadTrack(id); 
        audio.play(); 
       }; 

       extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : ''; 
       loadTrack(index); 
      } 


}); 
}); 

트랙이라는 변수의 내부에서 목록을 재정렬하는 방법이 있습니까? 무작위 추출에서 1에서 5까지의 목록 생성? 예를 들어, track2 track3 track4라는 항목이 있습니다. 잠재적으로 먼저 재생 될 수 있습니까? 그 페이지가 새로 고침에 무작위로 찾고 있어요.

도움 주셔서 감사합니다.

답변

0

트랙 변수에 playOrder 필드를 추가하고로드 할 때 각각의 기능을 수행하고 사용되지 않은 임의의 playOrder 번호를 할당 할 수 있습니다.

+0

아, 맞아요! 그래서 "트랙"필드는 "재생 순서"이며, 무작위로 사용되지 않는 숫자를 무작위로 할당하는 기능을 만들어 너무 어려워서는 안됩니다. 감사합니다. –