Como criar playlist de áudio aleatório?
http://pt.stackoverflow.com/questions/34185/como-criar-playlist-de-%C3%A1udio-aleat%C3%B3rio
HTML
<div id="now"></div>
<audio preload="none" id="player" controls="controls"></audio>
<button id="next">next</button>
<p id="playlist"></p>
CSS
body {
font-family: sans;
background-color: #ccc;
}
div, p {
padding: 10px;
}
p {
background-color: #c38833;
line-height: 25px;
margin-top: 10px;
}
button {
vertical-align: top;
padding: 5px;
}
#playlist {
counter-reset: my-counter -1;
}
#playlist dt:before {
content: counter(my-counter, decimal-leading-zero) ". ";
counter-increment: my-counter;
}
JavaScript
var _now = document.getElementById('now'),
_player = document.getElementById('player'),
_next = document.getElementById('next'),
_playlist = document.getElementById('playlist'),
tracks_clone,
mp3uri = 'http://www.stephaniequinn.com/Music/',
tracks = [
'Commercial%20DEMO%20-%2005.mp3',
'Commercial%20DEMO%20-%2006.mp3',
'Commercial%20DEMO%20-%2007.mp3',
'Commercial%20DEMO%20-%2008.mp3',
'Commercial%20DEMO%20-%2009.mp3',
'Commercial%20DEMO%20-%2010.mp3',
'Commercial%20DEMO%20-%2011.mp3',
'Commercial%20DEMO%20-%2012.mp3',
'Commercial%20DEMO%20-%2013.mp3',
'Handel%20Royal%20Fireworks%20-%2007.mp3',
'Mouret%20-%20Rondeau.mp3',
'The%20Irish%20Washerwoman.mp3',
'Vivaldi%20-%20Spring%20from%20Four%20Seasons.mp3'
];
function playNext() {
if( tracks_clone.length === 0 ) {
tracks_clone = tracks.slice(0);
}
var randnum = Math.floor(Math.random() * tracks_clone.length);
var track = tracks_clone[randnum];
_now.innerHTML = '<b>Random selected</b>: #' + randnum + '<br><b>Playing</b>: ' + decodeURIComponent(track).replace('.mp3','');
tracks_clone.splice(randnum, 1);
setTimeout( printList, 3000 );
_player.src = mp3uri + track;
return _player.play();
}
function printList() {
_playlist.innerHTML = '<dl><dt>' + decodeURIComponent(tracks_clone.join('</dt><dt>')) + '</dt></dl>';
}
function initPlayer() {
tracks_clone = tracks.slice(0);
_player.addEventListener('ended', playNext);
_next.addEventListener('click', playNext, false);
printList();
playNext();
}
window.addEventListener('load', initPlayer);