我正在尝试使用适用于Soundcloud的javascript SDK来返回可流式传输的曲目列表。
我的问题是:如何使用javascript SDK过滤仅可流式化歌曲的搜索结果?
以下是返回不可流式播放歌曲的示例:
<!DOCTYPE <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- link CSS and font files here -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/normalize.css">
<link href='https://fonts.googleapis.com/css?family=PT+Sans:400italic,400' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/responsive.css">
<script src="js/instafeed.min.js" type="text/javascript"></script>
<script type="text/javascript">
var userFeed = new Instafeed ({
get: "user",
userId: "8169627"
});
userFeed.run();
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="my_life">
<h1>A look into my life</h1>
<!-- Instragram photo feed -->
<div id="instafeed"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
以下是请求的结果:
api.soundcloud.com/tracks?q=mat+zo&filter=streamable&format=json&client_id= [XXX]
我注意到此响应中的第一首曲目有streamable = false 回复片段:
...
流线型:假的 tag_list:“Remix Mat Zo Burn Ellie Goulding”
标题:“烧(Mat Zo Remix)”
track_type:“”
...
查看Soundcloud SDK文档我没有看到这样做的方法,因为'filter'查询参数只接受'(all,public,private)'。
https://developers.soundcloud.com/docs/api/reference#tracks (我正在看过滤器)
同样没有答案的问题: stackoverflow.com/questions/23791711/filtering-tracks-by-streamable-in-soundcloud
先谢谢,这是我的第一个问题。我可以根据要求提供更多代码。
答案 0 :(得分:1)
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);
});
答案 1 :(得分:-1)
如果没有令牌进行测试,很难分辨。但是,“搜索”周围的documentation似乎意味着可以直接按属性过滤声音:
某些资源类型(如声音)可以按许可证,持续时间或tag_list等字段进行过滤。
// find all sounds of buskers licensed under 'creative commons share alike'
SC.get('/tracks', {
q: 'buskers', license: 'cc-by-sa'
}).then(function(tracks) {
console.log(tracks);
});
在您的情况下,您应该使用streamable替换许可证,并使用'true'替换'cc-by-sa'。