如何在页面加载时从 localStorage 加载 jPlayer 播放列表?
How to load a jPlayer playlist from localStorage on page load?
我一直在尝试完成这个看似简单的任务,即从当前用户的 localStorage 加载 jPlayer 播放列表。
基本上,我希望我们的用户能够将项目添加到他们的播放列表,然后将其存储到他们的 localStorage。当用户浏览网站上的每个 post/page 时,他们保存的播放列表会从 localStorage 重新加载,这样他们就不必一遍又一遍地创建播放列表。
我现在的设置方式是,单击每个项目下的“添加到播放列表”按钮后,该项目就会添加到播放列表中,并存储在 [=44= 键下的 localStorage 中].
这是添加到播放列表的代码片段:
/* ADD INDIVIDUAL TRACKS TO PLAYLIST */
$(".addtolist").click(function () {
var addbutton = $(this);
var mp3id = addbutton.data('mp3file');
var songtitle = addbutton.data('mp3title');
myPlaylist.add({ title: songtitle, artist: "Right Beat Radio", mp3: mp3id });
// Save playlist to LocalStorage
if (!localStorage) { return false; }
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
});
如您所见,我正在使用以下方法将播放列表项目保存到 "localPlaylist":
// Save playlist to LocalStorage
if (!localStorage) { return false; }
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
例如,存储这些项目后,它们看起来像这样:
[{"title":"Mauvais Temps","artist":"Right Beat Radio","mp3":"/mp3s/MauvaisTemps.mp3"},{"title":"Line Steppers","artist":"Right Beat Radio","mp3":"/mp3s/LineSteppers.mp3"},{"title":"Try My Best","artist":"Right Beat Radio","mp3":"/mp3s/TryMyBest.mp3"},{"title":"San Ignacio","artist":"Right Beat Radio","mp3":"/mp3s/SanIgnacio.mp3"}]
这一切都很棒。但是现在,当我访问另一个页面时,我究竟该如何调用此信息并使用此 localStorage 信息重新填充播放列表?
这是在 文档就绪 上调用的代码,它设置了新的 jPlayer。这实际上可能是问题所在:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, [
{
title:"",
artist:"",
mp3:"",
oga:"",
poster: ""
}
], {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
显然,上面的代码设置了一个带有空白播放列表的 jPlayer,等待用户向其中添加内容。
因此,总而言之,我们希望在用户将新歌曲添加到播放列表时存储播放列表项。我们已经做到了(耶!)。
现在我们想从 localStorage 中调用存储的信息,存储在键名 "localPlaylist" 下,并在用户重新加载我们网站上的页面时重新填充播放列表。
谁能帮帮我们?提前致谢!
我通过一个非常简单的改动就搞定了。我更改了在文档加载时设置新 jPlayer 的代码。这是从 localStorage 加载播放列表的代码:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, JSON.parse(localStorage.getItem('localPlaylist')), {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
如您所见,我们只是添加了以下代码来代替预定义的播放列表项:
JSON.parse(localStorage.getItem('localPlaylist'))
现在播放列表正在从用户的本地存储中填充!
所以,总结给那些正在尝试同样事情的人--
要将播放列表保存到本地存储:
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
要从本地存储加载播放列表:
JSON.parse(localStorage.getItem('localPlaylist'))
正在使用 localStorage 播放列表创建新的 jPlayer 实例:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, JSON.parse(localStorage.getItem('localPlaylist')), {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
编码愉快!
:)
我一直在尝试完成这个看似简单的任务,即从当前用户的 localStorage 加载 jPlayer 播放列表。
基本上,我希望我们的用户能够将项目添加到他们的播放列表,然后将其存储到他们的 localStorage。当用户浏览网站上的每个 post/page 时,他们保存的播放列表会从 localStorage 重新加载,这样他们就不必一遍又一遍地创建播放列表。
我现在的设置方式是,单击每个项目下的“添加到播放列表”按钮后,该项目就会添加到播放列表中,并存储在 [=44= 键下的 localStorage 中].
这是添加到播放列表的代码片段:
/* ADD INDIVIDUAL TRACKS TO PLAYLIST */
$(".addtolist").click(function () {
var addbutton = $(this);
var mp3id = addbutton.data('mp3file');
var songtitle = addbutton.data('mp3title');
myPlaylist.add({ title: songtitle, artist: "Right Beat Radio", mp3: mp3id });
// Save playlist to LocalStorage
if (!localStorage) { return false; }
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
});
如您所见,我正在使用以下方法将播放列表项目保存到 "localPlaylist":
// Save playlist to LocalStorage
if (!localStorage) { return false; }
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
例如,存储这些项目后,它们看起来像这样:
[{"title":"Mauvais Temps","artist":"Right Beat Radio","mp3":"/mp3s/MauvaisTemps.mp3"},{"title":"Line Steppers","artist":"Right Beat Radio","mp3":"/mp3s/LineSteppers.mp3"},{"title":"Try My Best","artist":"Right Beat Radio","mp3":"/mp3s/TryMyBest.mp3"},{"title":"San Ignacio","artist":"Right Beat Radio","mp3":"/mp3s/SanIgnacio.mp3"}]
这一切都很棒。但是现在,当我访问另一个页面时,我究竟该如何调用此信息并使用此 localStorage 信息重新填充播放列表?
这是在 文档就绪 上调用的代码,它设置了新的 jPlayer。这实际上可能是问题所在:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, [
{
title:"",
artist:"",
mp3:"",
oga:"",
poster: ""
}
], {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
显然,上面的代码设置了一个带有空白播放列表的 jPlayer,等待用户向其中添加内容。
因此,总而言之,我们希望在用户将新歌曲添加到播放列表时存储播放列表项。我们已经做到了(耶!)。
现在我们想从 localStorage 中调用存储的信息,存储在键名 "localPlaylist" 下,并在用户重新加载我们网站上的页面时重新填充播放列表。
谁能帮帮我们?提前致谢!
我通过一个非常简单的改动就搞定了。我更改了在文档加载时设置新 jPlayer 的代码。这是从 localStorage 加载播放列表的代码:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, JSON.parse(localStorage.getItem('localPlaylist')), {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
如您所见,我们只是添加了以下代码来代替预定义的播放列表项:
JSON.parse(localStorage.getItem('localPlaylist'))
现在播放列表正在从用户的本地存储中填充!
所以,总结给那些正在尝试同样事情的人--
要将播放列表保存到本地存储:
localStorage.setItem('localPlaylist', JSON.stringify(myPlaylist.playlist));
要从本地存储加载播放列表:
JSON.parse(localStorage.getItem('localPlaylist'))
正在使用 localStorage 播放列表创建新的 jPlayer 实例:
$(document).ready(function(){
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jplayer_N",
cssSelectorAncestor: "#jp_container_N"
}, JSON.parse(localStorage.getItem('localPlaylist')), {
playlistOptions: {
enableRemoveControls: true,
autoPlay: false
},
swfPath: "js/jPlayer",
supplied: "webmv, ogv, m4v, oga, mp3",
smoothPlayBar: true,
keyEnabled: true,
audioFullScreen: false
});
});
编码愉快! :)