1

这是我对使用 JavaScript SDK 的自定义 Soundcloud 播放器的解释。我想在最后一首曲目完成后重置播放列表,这部分已完成 - 第一首曲目已正确设置,但我的下一个/上一个按钮的计数器变量没有更新。

或者也许有比使用计数器变量更好的方法来循环播放列表?

var autoplay = false;

$(document).ready(function() {

  SC.get( '/resolve', {url: 'https://soundcloud.com/rockcurrent/sets/rc-playlist-new-rock-releases'}, function(pl) {

    var i = 0;
    var track_url = pl.tracks[i].uri;

    var stream_sound = function(i) {
      track_url = pl.tracks[i].uri;

      SC.stream(track_url, function(sound) {

        var new_play = function() {
          sound.play({
            onplay: function() {
              title(i); 
            },    
            whileplaying: function() {
              loader(this.position, this.duration);             
            },
            onfinish: function() {
              if (i < pl.tracks.length -1) {
                i++;
                autoplay = true;             
              }
              else {
                i = 0;
              }
              stream_sound(i); 
            }
          });
        }

        new_play();
        sound.pause();

        if (autoplay) {
          sound.resume();
          is_playing = true;
        }

        autoplay = false;

        $('#play').on('click', function() {
          togglePause();     
        });

      });
}

stream_sound(i);

$('#next').on('click', function() {
  soundManager.stopAll();
  if (i < pl.tracks.length -1) {
    i++;
  }
  autoplay = true;
  stream_sound(i);
});

$('#prev').on('click', function() {
  soundManager.stopAll();
  if (i > 0) {
    i--;
  }
  autoplay = true;
  stream_sound(i);
});

}); 
});
4

0 回答 0