diff --git a/public/javascripts/player.js b/public/javascripts/player.js index 0ba1029..a9007d6 100644 --- a/public/javascripts/player.js +++ b/public/javascripts/player.js @@ -46,7 +46,7 @@ $(function(){ playPrev(); }).disableTextSelect(); $('#player .next').click(function(){ - playNext(false); + playNext(); }).disableTextSelect(); $('#player .shuffle, #player .repeat').click(function(){ $(this).toggleClass('on'); @@ -55,13 +55,19 @@ $(function(){ $('#playlist').toggle(); //$('#playlist').data('jsp').reinitialise(); }) + $('#player .progress-bar').click(function(e){ + if (typeof(audio) !== 'undefined' && typeof(audio.duration) !== 'undefined') { + desired_progress = Math.abs(e.pageX - $(this).offset().left) / $('#player .progress-bar').innerWidth(); + audio.currentTime = Math.round(audio.duration * desired_progress); + } + }) $('#playlist').hide(); }) function updatePlayer() { duration = audio.duration; cur_time = audio.currentTime; if (cur_time == duration) { - playNext(true); + playNext(); } loaded = 0; if ((audio.buffered != undefined) && (audio.buffered.length != 0)) { @@ -73,7 +79,7 @@ function updatePlayer() { $('#player .progress-point').css('margin-left', progress +'px') /* Starting buffering next track */ - if (Math.round(cur_time / duration * 100) > 70) { + if (Math.round(cur_time / duration * 100) > 10) { addAudio(next_audio); } } @@ -87,6 +93,7 @@ function formatTime(sec) { } function playTrack(artist, track, id) { switchAudio(id); + setNext(); $('#player .track-title').html(artist +' — '+ track); $('#player .time-played').html('0:00'); $('#player .time-left').html('0:00'); @@ -94,27 +101,31 @@ function playTrack(artist, track, id) { $('#player .progress-point').css('margin-left', 0 +'px') $('#player .play').trigger('click'); } -function playPrev() { +function setPrev() { if ($('#playlist ul.list li').length == 0) return false; - if ($('#playlist ul.list li.now-playing').prev().length == 0) { - $('#playlist ul.list li:last').dblclick(); - } else { - $('#playlist ul.list li.now-playing').prev().dblclick(); + if (!audio) { + prev_audio = $(audio).attr('data-id'); } } -function playNext(auto) { +function setNext() { if ($('#playlist ul.list li').length == 0) return false; if ($('#player .shuffle').hasClass('on')) { - $('#playlist ul.list li').rand().dblclick(); + next_audio = $('#playlist ul.list li').rand().attr('data-id'); } if ($('#playlist ul.list li.now-playing').next().length == 0) { - if ((auto && $('#player .repeat').hasClass('on')) || !auto) { - $('#playlist ul.list li:first').dblclick(); + if ($('#player .repeat').hasClass('on')) { + next_audio = $('#playlist ul.list li:first').attr('data-id'); } } else { - $('#playlist ul.list li.now-playing').next().dblclick(); + next_audio = $('#playlist ul.list li.now-playing').next().attr('data-id'); } } +function playPrev() { + return false; +} +function playNext() { + $('#playlist ul.list li[data-id="'+ next_audio +'"]').dblclick(); +} function addToPlaylist(artist, track, length, id) { $('#playlist ul.list').append($( '