summaryrefslogtreecommitdiffstats
path: root/apps/media/js
diff options
context:
space:
mode:
authorCôme BERNIGAUD <come.bernigaud@laposte.net>2011-08-25 20:37:51 +0200
committerCôme BERNIGAUD <come.bernigaud@laposte.net>2011-08-25 20:37:51 +0200
commitce1d13c9b6adf351818637649ca90a757c67df96 (patch)
treeac409d9a6afd2f4455ea79e207df7492eea74c61 /apps/media/js
parentad053d504ca0d4ce1bd15514e60fd344e8dbc293 (diff)
downloadnextcloud-server-ce1d13c9b6adf351818637649ca90a757c67df96.tar.gz
nextcloud-server-ce1d13c9b6adf351818637649ca90a757c67df96.zip
playlist working
Diffstat (limited to 'apps/media/js')
-rw-r--r--apps/media/js/player.js52
1 files changed, 27 insertions, 25 deletions
diff --git a/apps/media/js/player.js b/apps/media/js/player.js
index b3beed8c3b9..7581c27393f 100644
--- a/apps/media/js/player.js
+++ b/apps/media/js/player.js
@@ -5,10 +5,8 @@ var PlayList={
player:null,
volume:0.8,
active:false,
- tempPlaylist:[],
- isTemp:true,
next:function(){
- var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
+ var items=PlayList.items;
var next=PlayList.current+1;
if(next>=items.length){
next=0;
@@ -17,7 +15,7 @@ var PlayList={
PlayList.render();
},
previous:function(){
- var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
+ var items=PlayList.items;
var next=PlayList.current-1;
if(next<0){
next=items.length-1;
@@ -26,7 +24,7 @@ var PlayList={
PlayList.render();
},
play:function(index,time,ready){
- var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
+ var items=PlayList.items;
if(index==null){
index=PlayList.current;
}
@@ -34,8 +32,11 @@ var PlayList={
PlayList.current=index;
if(PlayList.player){
if(PlayList.player.data('jPlayer').options.supplied!=items[index].type){//the the audio type changes we need to reinitialize jplayer
+ PlayList.player.jPlayer("play",time);
+ localStorage.setItem(oc_current_user+'oc_playlist_time',time);
PlayList.player.jPlayer("destroy");
- PlayList.init(items[index].type,function(){PlayList.play(null,time,ready)});
+ PlayList.save(); // so that the init don't lose the playlist
+ PlayList.init(items[index].type,null); // init calls load that calls play
}else{
PlayList.player.jPlayer("setMedia", items[PlayList.current]);
items[index].playcount++;
@@ -60,7 +61,10 @@ var PlayList={
}
}
}else{
- PlayList.init(items[index].type,PlayList.play);
+ localStorage.setItem(oc_current_user+'oc_playlist_time',time);
+ localStorage.setItem(oc_current_user+'oc_playlist_playing','true');
+ PlayList.save(); // so that the init don't lose the playlist
+ PlayList.init(items[index].type,null); // init calls load that calls play
}
}
},
@@ -100,37 +104,30 @@ var PlayList={
swfPath:OC.linkTo('media','js'),
});
},
- add:function(song,temp,dontReset){
+ add:function(song,dontReset){
if(!dontReset){
- PlayList.tempPlaylist=[];//clear the temp playlist
+ PlayList.items=[];//clear the playlist
}
- PlayList.isTemp=temp;
- PlayList.isTemp=true;
if(!song){
return;
}
if(song.substr){//we are passed a string, asume it's a url to a song
- PlayList.addFile(song,temp,true);
+ PlayList.addFile(song,true);
}
if(song.albums){//a artist object was passed, add all albums inside it
$.each(song.albums,function(index,album){
- PlayList.add(album,temp,true);
+ PlayList.add(album,true);
});
- }
- if(song.songs){//a album object was passed, add all songs inside it
+ } else if(song.songs){//a album object was passed, add all songs inside it
$.each(song.songs,function(index,song){
- PlayList.add(song,temp,true);
+ PlayList.add(song,true);
});
}
if(song.path){
var type=musicTypeFromFile(song.path);
var item={name:song.name,type:type,artist:song.artist,album:song.album,length:song.length,playcount:song.playCount};
item[type]=PlayList.urlBase+encodeURIComponent(song.path);
- if(PlayList.isTemp){
- PlayList.tempPlaylist.push(item);
- }else{
- PlayList.items.push(item);
- }
+ PlayList.items.push(item);
}
},
addFile:function(path){
@@ -145,6 +142,7 @@ var PlayList={
PlayList.items.push(item);
},
remove:function(index){
+ alert('remove');
PlayList.items.splice(index,1);
PlayList.render();
},
@@ -160,10 +158,14 @@ var PlayList={
if(typeof localStorage !== 'undefined' && localStorage){
localStorage.setItem(oc_current_user+'oc_playlist_items',JSON.stringify(PlayList.items));
localStorage.setItem(oc_current_user+'oc_playlist_current',PlayList.current);
- var time=Math.round(PlayList.player.data('jPlayer').status.currentTime);
- localStorage.setItem(oc_current_user+'oc_playlist_time',time);
- var volume=PlayList.player.data('jPlayer').options.volume*100;
- localStorage.setItem(oc_current_user+'oc_playlist_volume',volume);
+ if(PlayList.player) {
+ if(PlayList.player.data('jPlayer')) {
+ var time=Math.round(PlayList.player.data('jPlayer').status.currentTime);
+ localStorage.setItem(oc_current_user+'oc_playlist_time',time);
+ var volume=PlayList.player.data('jPlayer').options.volume*100;
+ localStorage.setItem(oc_current_user+'oc_playlist_volume',volume);
+ }
+ }
if(PlayList.active){
localStorage.setItem(oc_current_user+'oc_playlist_active','false');
}