我正在尝试使用jplayer插件(带有播放列表插件)获取帖子的mp3附件。我让它为一定数量的附件工作,但无法为任何数量的附件找到动态解决方案。
目前,mp3附件URL和标题被提取并作为属性添加到\'。jp playlist’div.这样就可以通过jquery访问数据,为jplayer设置播放列表。(这可能不是最优雅的解决方案,因此任何关于更好方法的反馈都值得赞赏)
用于在单个中设置jPlayer的代码。php:
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
<div id="jp_container_1" class="jp-audio">
<div class="jp-type-playlist">
<div class="jp-gui jp-interface">
<ul class="jp-controls">
<li><a href="#" class="jp-previous" tabindex="1">previous</a></li>
<li><a href="#" class="jp-play" tabindex="1">play</a></li>
<li><a href="#" class="jp-pause" tabindex="1">pause</a></li>
<li><a href="#" class="jp-next" tabindex="1">next</a></li>
</ul>
</div>
<div class="jp-playlist" data-track-1="exampleurl1.mp3" data-title-1="Track 1" data-track-2="exampleurl2.mp3" data-title-2="Track 2" data-track-3="exampleurl3.mp3" data-title-3="Track 3" >
<ul>
<li></li>
</ul>
</div> <!-- .jp-playlist -->
</div> <!-- .jp-type-playlist -->
</div> <!-- #jp_container_1 -->
用于初始化jPlayer和设置播放列表的jQuery代码:
jQuery(document).ready(function($) {
var myPlaylist = new jPlayerPlaylist({
jPlayer: "#jquery_jplayer_1",
cssSelectorAncestor: "#jp_container_1"
}, [
{
title: $(".jp-playlist").attr("data-title-1"),
mp3: $(".jp-playlist").attr("data-track-1")
},
{
title: $(".jp-playlist").attr("data-title-2"),
mp3: $(".jp-playlist").attr("data-track-2")
},
{
title: $(".jp-playlist").attr("data-title-3"),
mp3: $(".jp-playlist").attr("data-track-3")
}
], {
swfPath: "Jplayer.swf",
supplied: "mp3"
});
});
如果有三个mp3附件,这很好用,但我需要使其适用于任何数量的附件。我想解决方案是使用javascript循环来获取所有数据曲目/标题属性,并将它们输出到播放列表对象的数组中,但我没有太大的成功。非常感谢您的帮助!