Soundcloud Widget API - seekTo不适用于暂停的音频

时间:2016-04-06 18:05:00

标签: soundcloud

我想使用SoundCloud分享播客,并且我已经创建了一些链接来帮助听众擦除音频。示例:

<a href="#" onclick="SC.Widget('player').seekTo(10000);">GO TO 10s</a> - 
<a href="#" onclick="SC.Widget('player').seekTo(30000);">GO TO 30s</a>

因此,当用户点击&#34;转到10s&#34;时,音频必须达到10秒。但是只有在用户按下播放按钮后才能工作 是否有任何方法可以启动音频并在用户点击&#34; GO TO&#34;时将音频移动到正确的时间。链接?

谢谢!

2 个答案:

答案 0 :(得分:0)

我做类似的事情让用户点击波形......

_getScWidget()是一个返回soundcloud小部件的函数

代码段

  this.getWaveformClick = function() {
    try {

      ...
      // target is calculated position in ms based on where on the waveform the user clicks
      this._getScWidget().isPaused(function isPaused(p) {
        if (p == true) {
          // if paused play then seek
          self._getScWidget().play();
          self._getScWidget().seekTo(target);
        } else {
          // if not paused, just seek
          self._getScWidget().seekTo(target);
        }
      });
    } catch (e) {
      // error handler
    }
  }

答案 1 :(得分:0)

我刚刚解决了受@SteveE回答启发的问题。这是代码:

var player = SC.Widget('player');
var miliseconds = -1;

player.bind(SC.Widget.Events.PLAY, function() {
    if (miliseconds >= 0) {
        player.seekTo(miliseconds);
    }
});

seekTo = function(minutes, seconds) {
    miliseconds = ((minutes * 60) + seconds) * 1000;

    player.isPaused(function isPaused(p) {
        if (p == true) {
            player.play();
        } else {
            player.seekTo(miliseconds);
        }
    });
}