Audio/MP3 Shuffle Playlist
HTML
<audio id="audio" preload tabindex="0" controls="" type="audio/mpeg" autoplay>
<source type="audio/mp3" src="https://archive.org/download/iPhone_7_ringtone_cutted/iPhone_7_ringtone_cutted.mp3">
Sorry, your browser does not support HTML5 audio.
</audio>
<br/>
Chờ giây lát cho trình duyệt tải các tệp tin mp3. Mỗi lần tải lại trang, danh sách sẽ phát giống nhau hoặc khác đi một cách ngẫu nhiên.
<br/>
<div id="n"></div>
<ul id="playlist" class="content">
<li class="active"><a href="https://archive.org/download/HaTrangElvisPhuong/HaTrang-ElvisPhuong.mp3">Hạ trắng - Elvis Phương</a></li>
<li><a href="https://archive.org/download/O.LaiThan.hHa/O.Lai-Than.hHa.mp3">Ở lại - Thanh Hà</a></li>
<li><a href="https://archive.org/download/ToiRuEmNguElvisPhuong/T%C3%B4i%20Ru%20Em%20Ng%E1%BB%A7-Elvis%20Ph%C6%B0%C6%A1ng.mp3">Toi ru em ngu - Elvis Phuong</a></li>
<li><a href="https://archive.org/download/MaHHngTuNNgcBgngKiBu/M%C6%B0a%20h%E1%BB%93ng%20-%20Tu%E1%BA%A5n%20Ng%E1%BB%8Dc-B%E1%BA%B1ng%20Ki%E1%BB%81u.mp3">Mưa hồng - Tuấn Ngọc, Bằng Kiều</a></li>
<li><a href="https://archive.org/download/NhCCnhVCBayKhynhLy/Nh%C6%B0%20C%C3%A1nh%20V%E1%BA%A1c%20Bay-Kh%C3%A1nh%20Ly.mp3">Nhu canh vac bay - Khanh Ly</a></li>
<li><a href="https://archive.org/download/MuaChieuKyNiemYPhuongQuocKhanh/MuaChieuKyNiem-YPhuong-QuocKhanh_rqyb.mp3">Mưa chieu ky niem - Y Phuong, Quoc Khanh</a></li>
</ul>
CSS
#playlist,audio{background:#ccccff;width:400px;padding:10px;}
.active a{color:#5DB0E6;text-decoration:none;}
li a{color:#eeeedd;background:#194775;padding:5px;display:block;}
li a:hover{text-decoration:none;}
JavaScript
for (var $x=$(".content li"), i=$x.length-0, j, temp; i>=0; i--) { j=Math.floor(Math.random()*(i+0)), temp=$x[i], $x[i]=$x[j], $x[j]=temp; }
$x.each(function(i, li) { $(".content").append(li); });
var audio;
var playlist;
var tracks;
var current;
init();
function init(){
current = 0;
audio = $('audio');
playlist = $('#playlist');
tracks = playlist.find('li a');
len = tracks.length - 0;
audio[0].volume = .80;
playlist.find('a').click(function(e){
e.preventDefault();
link = $(this);
current = link.parent().index();
run(link, audio[0]);
});
audio[0].addEventListener('ended',function(e){
current++;
if(current == len){
current = 0;
link = playlist.find('a')[0];
}else{
link = playlist.find('a')[current];
}
run($(link),audio[0]);
});
}
function run(link, player){
player.src = link.attr('href');
par = link.parent();
par.addClass('active').siblings().removeClass('active');
audio[0].load();
audio[0].play();
}