向SoundCloud Widget发出绑定事件

时间:2014-06-11 17:23:24

标签: javascript html5 widget soundcloud audio-player

我将完成事件绑定到窗口小部件,它适用于第一个窗口小部件,但不适用于同一页面上的第二个窗口小部件。

  

未捕获的TypeError:无法读取属性' postMessage'为null

这就是我初始化它的方式。

var widget = SC.Widget($instance[0]);
widget.bind(SC.Widget.Events.FINISH, function(){
    options.done();
});

用例是一次显示1个曲目。当第一个完成时,第二个被加载。由于这个例外,我无法播放第二个。我知道我可以使用SDK来执行此操作,但我尝试使用小部件,因此我不必提供自己的用户界面。

有什么想法吗?这显然是SoundCloud Widget API的一个错误。我试图查看是否有解决方法。


EDITED

更新以包含更多信息。这是一个非常简单的案例,并没有什么特别之处。

Simplified JS - 这几乎适用于Javascript。没什么特别的。

var $track1 = $('<iframe id="sc1" src="//w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/79973942&amp;hide_related=true&amp;visual=true&amp;auto_play=true" frameborder="0"></iframe>');
$('body').append($track1);
var widget = SC.Widget($track1[0]);
widget.bind(SC.Widget.Events.FINISH, function(){
    $track1.remove();
    var $track2 = $('<iframe id="sc2" src="//w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/131713700&amp;hide_related=true&amp;visual=true&amp;auto_play=true" frameborder="0"></iframe>');
    $('body').append($track2);
    var widget = SC.Widget($track2[0]);
    widget.bind(SC.Widget.Events.FINISH, function(){
        console.log('Done');
    });
});

已编辑2

忘记提及这些帧是动态添加的。我调整了代码以匹配。

0 个答案:

没有答案