如何使用 SoundCloud API 按流派过滤

How to use SoundCloud API to filter by genres

我正在尝试使用 SoundCloud 的 API 但没有成功,网络上的大多数示例和教程都不起作用。 为此,我使用了这个 video tutorial。我希望在我的网站上创建一个按类型筛选的过滤器。 所以首先我创建了一个 HTML:

<!DOCTYPE html>
<html>
    <head>
        <script src="//connect.soundcloud.com/sdk.js"></script>
        <script src="js/soundcloud.js"></script>
    </head>
    <body>
        <div id="target">
            <ul>
                <li><a href="#" class="genre">punk</a></li>
                <li><a href="#" class="genre">rap</a></li>
                <li><a href="#" class="genre">rock</a></li>
            </ul>
        </div>
    </body>
</html>

比 JavaScript (soundcloud.js):

function playSomeSound(genre){
SC.get('/tracks',{
    genres:genre,
    bpm:{
      from:100
    }
  }, function(tracks){
    var random=Math.floor(Math.random()*49);
    SC.oEmbed(tracks[random]).uri,{auto_play:true}, document.getElementById('target')
  });
}

window.onload=function(){
  SC.initialize({
    client_id: 'my_app_id'
  });

  var menuLinks=document.getElementsByClassName('genre');
  for (var i=0; i<menuLinks.lenght;i++){
    var menuLink=menuLinks[i];
    menuLink.onclick=function(e){
      e.preventDefault();
      playSomeSound(menuLink.innerHTML);
    }
  }

};

当我导航到我的网站时,一切都很好,控制台没有出现任何错误,但是如果我点击一个流派,它什么也没做。 为什么它不从 SoundCloud 检索歌曲? SoundCloud为API使用改变了不同的东西,还有其他方法吗?

for (var i=0; i<menuLinks.lenght;i++){ //it should be .length and not lenght
    var menuLink=menuLinks[i];
    menuLink.onclick=function(e){
      e.preventDefault();
      playSomeSound(menuLink.innerHTML);
    }
  }

此外,您在 SC.embed 上放错了括号。这是一个可行的解决方案:http://jsbin.com/pugegesepu/1/edit