SoundCloud 小部件事件未触发

Posted

技术标签:

【中文标题】SoundCloud 小部件事件未触发【英文标题】:SoundCloud widget events not firing 【发布时间】:2013-01-10 13:28:32 【问题描述】:

我在使用 SoundCloud Widget API 时遇到问题。

由于某种原因,在使用 auto_play 选项播放曲目后,PLAY 和 PLAY_PROGRESS 事件未触发。不过,READY 事件运行良好。

代码如下:

player = SC.Widget(document.getElementById('soundcloud-player'));

player.bind(SC.Widget.Events.READY, this.SC_onPlayerReady.bind(this));
player.bind(SC.Widget.Events.PLAY, this.SC_onPlayerPlay.bind(this));
player.bind(SC.Widget.Events.PLAY_PROGRESS, this.SC_onPlayProgress.bind(this));

感谢 SC 工作人员的帮助,因为我找不到任何解决方案:-)

谢谢, 皮埃尔

【问题讨论】:

嘿皮埃尔!任何特定的浏览器?有链接吗? 嗨,米莎,我正在使用 Chrome (v23)。 Safari 也会出现同样的问题(不足为奇)。至于 Firefox,小部件根本没有加载。不,抱歉,我没有链接,因为它仍在进行中。 :-/ 不过,游乐场工作得很好。 【参考方案1】:

感谢您报告此事。

确实,当auto_play 参数设置为true 时,SC.Widget.Events.Play 不会立即触发。该修复程序正在部署中。

但是,PLAY_PROGRESS 事件很好,如下例所示:http://jsbin.com/adubav/6/edit

【讨论】:

不用担心。您的示例也对我有用,即使是 PLAY 事件,如果我以编程方式播放它。在我的本地版本中,当我执行完全相同的操作时甚至不会触发 PLAY,PLAY_PROGRESS 也不会触发。找不到我们的代码之间的任何区别。 如果我将 PLAY 和 PLAY_PROGRESS 事件的绑定移动到 READY 事件的回调函数中,我会收到无法使用跨域 postMessage 的错误消息。 如果你能上传你拥有的代码会很有帮助,我很乐意看看。 这包含我正在处理的代码的相关部分(不能透露全部内容):jsbin.com/adubav/12/edit。这个例子对我来说很好 小部件还有问题吗?

以上是关于SoundCloud 小部件事件未触发的主要内容,如果未能解决你的问题,请参考以下文章

soundcloud 小部件:自动播放在 Firefox 16 中无法始终如一地工作

使用 SoundCloud 默认音频小部件,您可以将其设置为从 JavaScript 随机播放吗?

SoundCloud嵌入小部件,希望每次都能随机播放一首歌

从另一个小部件触发检查按钮悬停事件

如何在自定义元素或按钮小部件上触发事件?

dojo 小部件不会发出事件