按标签过滤Soundcloud结果

时间:2014-05-26 09:04:17

标签: javascript tags filtering soundcloud

我正在处理这件事:http://grouprecorder.soundcloudlabs.com - 来自Soundcloud的录音小工具。我按照它应该的方式工作,将轨道录制和上传到指定的组,以及列出该组的轨道。不过,最重要的是,我想添加一个简单的功能,在博客上制作一个实验性的音频评论系统。

为了做到这一点,我必须区分不同帖子上的评论。我设法这样做,将WordPress帖子的ID传递给小部件的iFrame,并将其作为SoundCloud轨道标签进行传输。它准确上传。

然而,一旦我想过滤要在小部件中列出的曲目,只显示具有正确标签的曲目,我有点迷失。

这是代码的原始部分:

return SC.get(GR.groupUrl + "/tracks", { limit: 5, },

足够简单。我尝试添加标签,taglist,tag_list的所有变体,这些变体看起来很遥远,如:

return SC.get(GR.groupUrl + "/tracks", { limit: 5, tags: postIDtag },

- postIDtag 是我的功能非常好的postID变量。

然而,小部件不断发布未经过滤的小组曲目的整个列表。

其他人似乎过去曾遇到过相关问题。似乎无法同时按用户和标签进行过滤。也许群体也是如此。如果是这样单独使用标签对我来说没问题,因为我可以使它们具体到足以排除组外的任何轨道。但我是javascript的新手,所以我不确定是不是我或他们,这是错误的。任何人都可以帮助我,或者我尝试API中不支持的东西?

1 个答案:

答案 0 :(得分:1)

我过去使用Soundcloud API做了很多工作,发现用于在页面上呈现特定数据的API本身非常糟糕。

我为避免这些问题所做的工作是使用track数组本身,而不是通过soundcloud API处理数组。这是一个例子:

$.getJSON("http://api.soundcloud.com/groups/57713/tracks.json?client_id=YOUR_CLIENT_ID", function(data) {
    var tracks = $.map(data, function(track) {
        return {
            track: track.title,
            stream: track.stream_url + '?client_id=YOUR_CLIENT_ID',
            tags: track.tag_list
        };
    });
    console.log(tracks);
});

更新时间:2014年5月27日

您现在在控制台中看到的是两个单独的日志:

  • console.log(data)显示来自soundcloud的返回对象
  • console.log(this.tracks)以声音形式显示soundcloud中的对象。