【发布时间】:2015-08-21 16:25:00
【问题描述】:
我正在尝试创建 SoundCloud 音乐播放器。它可以播放 SoundCloud 中的任何曲目,但此插件仅在页面中只有一个实例时才有效。因此,如果页面中有两个相同的插件,它将无法正常工作。
以下是页面中有两个玩家的示例:JSFiddle
var trackURL = $(".player").text();
$(".player").empty();
$(".player").append("<div class='playBTN'>Play</div>");
$(".player").append("<div class='title'></div>");
var trackId;
SC.get('/resolve', { url: trackURL }, function (track) {
var trackId = track.id;
//var trackTitle = track.title;
$(".title").text(track.title);
$(".playBTN").on('click tap', function () {
//trackId = $(".DSPlayer").attr('id');
stream(trackId);
});
// first do async action
SC.stream("/tracks/" + trackId, {
useHTML5Audio: true,
preferFlash: false
}, function (goz) {
soundToPlay = goz;
sound = soundToPlay;
scTrack = sound;
//updater = setInterval( updatePosition, 100);
});
});
var is_playing = false,
sound;
function stream(trackId) {
scTrack = sound;
if (sound) {
if (is_playing) {
sound.pause();
is_playing = false;
$(".playBTN").text("Play");
} else {
sound.play();
is_playing = true;
$(".playBTN").text("Pause");
}
} else {
is_playing = true;
}
}
如果您删除其中任何包含.player 类的 div 元素,则另一个元素将起作用。所以它只是不起作用,因为同一个插件有两个实例。
我该如何解决?在一页中有多个播放器实例?
【问题讨论】:
-
您可能需要遍历每个
.player -
@greener 好吧,我试着做每个循环,但每一轮它都会更新所有持有
.player的元素。所以所有元素都显示相同的数据。这就是为什么我认为循环不是修复它的正确方法。可以举个简单的例子吗? -
就我而言,我已经将玩家分开但轨道还没有......也许你可以解决 soundcloud 位,因为我没有这方面的经验..jsfiddle.net/v8jhuba8/3
标签: javascript jquery soundcloud