50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
var audio;
|
|
var utid;
|
|
$(function(){
|
|
audio = document.getElementsByTagName('audio')[0];
|
|
$('#player .play').click(function(){
|
|
audio.play();
|
|
utid = window.setTimeout(updatePlayer, 100);
|
|
$('#player .pause').show();
|
|
$('#player .play').hide();
|
|
})
|
|
$('#player .pause').click(function(){
|
|
audio.pause();
|
|
clearTimeout(utid);
|
|
$('#player .pause').hide();
|
|
$('#player .play').show();
|
|
})
|
|
|
|
$('.tracks .play').click(function(){
|
|
playTrack($('h1.artist').html(), $(this).parent().find('.track-name').html(), '/listen/'+ $(this).parent().attr('id') +'/');
|
|
})
|
|
})
|
|
function updatePlayer() {
|
|
duration = audio.duration;
|
|
cur_time = audio.currentTime;
|
|
loaded = 0;
|
|
if ((audio.buffered != undefined) && (audio.buffered.length != 0)) {
|
|
loaded = Math.round((audio.buffered.end(0) / audio.duration) * 730);
|
|
}
|
|
$('#player .time-played').html(formatTime(cur_time));
|
|
$('#player .time-left').html(formatTime(duration - cur_time));
|
|
progress = Math.round((cur_time / duration) * 730);
|
|
$('#player .progress-loaded').css('width', loaded +'px')
|
|
$('#player .progress-point').css('margin-left', progress +'px')
|
|
utid = window.setTimeout(updatePlayer, 100);
|
|
}
|
|
function formatTime(sec) {
|
|
sec = Math.round(sec);
|
|
m = Math.floor(sec / 60);
|
|
s = sec - (m * 60);
|
|
return m +':'+ (s < 10 ? '0' : '') +s;
|
|
}
|
|
function playTrack(artist, track, stream) {
|
|
$(audio).attr('src', stream);
|
|
$('#player .track-title').html(artist +' — '+ track);
|
|
$('#player .time-played').html('0:00');
|
|
$('#player .time-left').html('0:00');
|
|
$('#player .progress-loaded').css('width', 0 +'px')
|
|
$('#player .progress-point').css('margin-left', 0 +'px')
|
|
$('#player .play').trigger('click');
|
|
} |