0

首先,我是个菜鸟。

好的,所以我在我的网页中嵌入了 SoundCloud 曲目。我的问题是,当曲目结束时,您如何刷新页面(或执行其他操作)?

你能用 getDuration 来做吗(我在 SoundCloud API 页面上找到了)?

我试着给它编码。在代码中,我尝试获取曲目的持续时间,然后将其打印在屏幕/网页上。这段代码有什么问题?

<script src="https://w.soundcloud.com/player/api.js" type="text/javascript"></script>
<span id="headerLeft-content">
    <script type="text/javascript">
        var duration = 0;
        (function(){
              var widgetIframe = document.getElementById('sc-widget'),
              widget = SC.Widget(widgetIframe);
              widget.bind(SC.Widget.Events.READY, function() {
                widget.getDuration(function(val) {
                  duration = val;
                });
              });
        }());

        document.write(duration);
    </script>
</span>

如果这行得通,我会放一些类似等待(持续时间)的东西,然后刷新......

换句话说,即使原始小部件不支持循环,soundcloud 嵌入式轨道是否可以被“破解”以循环(或在轨道结束后刷新页面,这就是我想要做的)?

请查看我找到 getDuration 命令的 SoundCloud html5 小部件页面,看看您是否可以帮助我... => http://developers.soundcloud.com/docs/api/html5-widget#getters

编辑:

<script>
var html=<iframe blablabla...></iframe>
document.write(html);
</script>

<script src="https://w.soundcloud.com/player/api.js" type="text/javascript"></script>
<script type="text/javascript">
  (function(){
    var widgetIframe = document.getElementById('sc-widget'),
        widget       = SC.Widget(widgetIframe),
    widget.bind(SC.Widget.FINISH, function() {
          window.location.reload(false);
    });
  }());
</script>

曲目结束后页面不刷新。你能看出有什么问题吗?

4

3 回答 3

1

您可以将函数绑定到此处记录SC.Widget.FINISH的事件。以下代码片段应该可以工作:

widget.bind(SC.Widget.FINISH, function() {
    window.location.reload(false);
});

当然,如果您只想让小部件循环,您可以使用seekToandplay方法:

widget.bind(SC.Widget.FINISH, function() {
    // again, again!
    widget.seekTo(0);
    widget.play();
});

这将比页面刷新更少干扰。

于 2013-04-26T03:45:37.943 回答
0
widget.bind(SC.Widget.Event.FINISH, function() {
    widget.seekTo(0);
    widget.play();
});

在另一个回复中,第一个参数缺少“.Event”。

于 2014-05-26T13:49:24.337 回答
0

最后。一个真正有效的版本。

var widgetIframe = document.getElementById("soundcloud"),
    widget       = SC.Widget(widgetIframe);

widget.bind(SC.Widget.Events.FINISH, function() {
    widget.play();
});
于 2017-03-06T01:30:19.677 回答