我正在使用播放列表插件的jPlayer。我一直试图弄清楚如何以各种方式分享播放列表。传递URL中的值似乎是最简单的。由于播放列表值存储在JSON数组中,在我看来,就像这样(对于3首曲目):
[{"title":"Name of Song 1","artist":"the artist","mp3":"http//file1.mp3"},{"title":"Name of Song 2","artist":"the artist","mp3":http//file2.mp3"},{"title":"Name of Song 3","artist":"the artist","mp3":"http//file3.mp3"}]
我想知道是否有办法获取此信息并将其编码为URL,然后我可以通过电子邮件发送给某人。当然,当页面被加载时,jPlayer必须检测URL中是否包含播放列表信息并加载播放列表(如果有),或者如果没有则加载默认/空白播放列表。
在我尝试解决此问题时,我发现项目需要为JSON.stringifyed才能使它们不显示为[object,object],因此存储播放列表如下所示:
var savedPlaylist = JSON.stringify(myPlaylist.playlist);
这将为我提供一个变量,其中包含jPlayer加载播放列表所需的内容。
进一步修补这一点导致我使用localStorage对其进行测试,通过以下方法将播放列表存储在html5 localStorage中:
$(#playlist-save").click(function(){
localStorage.setItem(JSON.stringify(myPlaylist.playlist);
});
从localStorage(解析JSON)加载:
$("#playlist-load").click(function(){
myPlaylist.setPlaylist(JSON.parse(myPlaylist.playlist);
});
同样,localStorage实际上并不是我刚刚用它来了解播放列表保存和加载的内容。我无法弄清楚如何使用此功能来处理URL。
编辑: 我不会在这个项目中使用数据库!!
答案 0 :(得分:0)
我相信你可以将你的json存储在某个地方,可能存储在数据库中,为每个播放列表关联一个id,并仅将id定义为URL参数。然后,当您通过URL共享播放列表时,URL参数将包含ID,服务器将从您的存储中加载播放列表json。