Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Soundcloud中按streamable=true筛选曲目_Javascript_Soundcloud - Fatal编程技术网

Javascript 在Soundcloud中按streamable=true筛选曲目

Javascript 在Soundcloud中按streamable=true筛选曲目,javascript,soundcloud,Javascript,Soundcloud,我正在尝试使用用于Soundcloud的javascript SDK返回可流化的曲目列表 我的问题是:如何使用JavaScriptSDK过滤搜索结果,只搜索可流化的歌曲 下面是一个将返回不可流化歌曲的示例: SC.get('/tracks', {q: 'mat zo', filter: 'streamable'}).then(function (tracks) { console.log(tracks); }); 以下是该请求的结果: api.soundcloud.com/trac

我正在尝试使用用于Soundcloud的javascript SDK返回可流化的曲目列表

我的问题是:如何使用JavaScriptSDK过滤搜索结果,只搜索可流化的歌曲

下面是一个将返回不可流化歌曲的示例:

SC.get('/tracks', {q: 'mat zo', filter: 'streamable'}).then(function (tracks) { 
    console.log(tracks); 
});
以下是该请求的结果:

api.soundcloud.com/tracks?q=mat+zo&filter=streamable&format=json&client_id=[XXX]

我注意到此响应中的第一个曲目为streamable=false。
响应的片段:


可流化:false
标签列表:“混音Mat Zo Burn Ellie Goulding”
标题:“刻录(Mat Zo混音)”
轨道类型:“

查看Soundcloud SDK文档,我看不到这样做的方法,因为'filter'查询参数只接受'(all、public、private)'

(我正在看过滤器)

同一个未回答的问题: stackoverflow.com/questions/23791711/filtering-tracks-by-streamable-in-soundcloud


提前谢谢,这是我的第一个问题。我可以根据要求提供更多的代码。

如果没有测试令牌,很难判断。但是,“搜索”似乎意味着声音可以通过属性直接过滤:

某些资源类型(如声音)可以通过许可证、持续时间或标记列表等字段进行过滤

在您的情况下,应该将许可证替换为streamable,将“cc by sa”替换为“true”。

API上的streamable属性没有(文档化的)过滤器。但是,您可以自己轻松过滤掉不可播放的曲目:

SC.get('/tracks', {q: 'mat zo'}).then(function (tracks) { 
    for(var i = 0; i < tracks.length; i++) {
        if(!(tracks[i].streamable)) {           
        tracks.splice(i,1);
      } 
    }
    console.log(tracks); 
});
SC.get('/tracks',{q:'matzo'})。然后(函数(tracks){
对于(变量i=0;i
您是想通过更改对Soundcloud SDK的请求,还是通过处理请求返回的数据来实现这一点?我想知道如何更改对服务器的请求,只给我一个streamable=true的响应。感谢您的澄清。我尝试了一下,得到了与第一个示例相同的json响应:(`SC.get('/tracks',{q:'mat zo',streamable:true})。然后(函数(tracks){console.log(tracks);});stream_url:“streamable:false标记列表:“混音mat zo Burn Ellie Goulding”标题:“Burn(mat zo Remix)”曲目类型:“`这是一个可以使用的客户端id:429600260189EF2F5FAF0AE09EA502F7谢谢Hartger。我希望有一种方法可以让服务器这样做,但我可以这样做。
SC.get('/tracks', {q: 'mat zo'}).then(function (tracks) { 
    for(var i = 0; i < tracks.length; i++) {
        if(!(tracks[i].streamable)) {           
        tracks.splice(i,1);
      } 
    }
    console.log(tracks); 
});