不幸的似乎是在完成事件的竞争条件错误。 Soundcloud播放器最终同时播放两首歌曲:列表中的下一首歌曲以及在完成事件处理程序中跳过的歌曲。
var widget = null;
$(function() {
var iframe = document.querySelector('#soundcloud_player iframe');
widget = SC.Widget(iframe);
widget.bind(SC.Widget.Events.READY, function() {
widget.bind(SC.Widget.Events.FINISH, function() {
widget.skip(3);
});
});
});
这是一个已知的错误吗?
是否有更好的方式在声音结束后跳到另一个轨道?
有没有办法关闭连续播放?
在完成事件处理程序中跳过之前添加一小段等待,解决问题。但似乎不是一个好方法。
window.setTimeout(function() { widget.skip(3); }, 300);
另一个解决办法是跳至上一首歌曲结束之前的一首歌,用PLAY_PROGRESS事件,而不是在FINISH事件。
widget.bind(SC.Widget.Events.READY, function() {
widget.bind(SC.Widget.Events.PLAY_PROGRESS, function(obj) {
if (obj.relativePosition > 0.999) {
widget.pause();
widget.skip(3);
}
});
});
2013-04-14
Don Zola
+0
嘿,这似乎是一个错误,我正在研究它,谢谢你的报告。 –