5

http://developers.soundcloud.com/docs/api

API ドキュメントを見ると、

 SC.stream("/tracks/293", function(sound){
      sound.play();
 });

アップロードしたトラックを見ると、パーマリンクしか表示されません。Web サイトからトラック ID を取得するにはどうすればよいですか? ID を取得するには、常に /resolve を実行する必要がありますか?

4

4 に答える 4

11

これはおそらく /resolve よりも手動の手順ですが、「Web サイトから」です。サウンドに移動して「共有」をクリックすると、埋め込みコードにもサウンド ID が表示されます。

たとえば、サウンドページに移動すると、次のようになります。

https://soundcloud.com/lowcountrykingdom/another-ordinary-day

次に、「共有」をクリックすると、ポップアップが表示されます。[埋め込み] をクリックして埋め込みタブに切り替え、次のような埋め込みコードをコピーします。

<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/47580057&amp;color=ff6600&amp;auto_play=false&amp;show_artwork=true"></iframe>

url クエリ パラメータの値の ID に注意してください。

url=https%3A//api.soundcloud.com/tracks/47580057
于 2013-12-14T07:30:21.510 に答える
3

jquery ajax 呼び出しを使用して、Soundcloud からデータを取得します。変数 permalink_url と client_id を保存するとします。

$.get('http://api.soundcloud.com/resolve.json?url='+
    permalink_url+'/tracks&client_id='+client_id , function (result) {
        console.log(result);
    });

これにより、曲の配列がログに記録されます。参照用にこのビンをチェックしてくださいhttp://jsbin.com/viviza/4/edit

更新:この回答はかなり古いものです。

サウンドクリックのドキュメントhttps://developers.soundcloud.com/docs/api#uploading

SC オブジェクトで ID を直接取得できるようになりました

SC.connect().then(function(){
    return SC.get('/me/tracks');
}).then(function(tracks){
    return tracks.map(function(track){
       console.log("you can log the id here too: " + track.id")
       return track.id
    })
})
于 2014-04-05T22:45:16.750 に答える
1

特定のユーザー ID からすべてのトラックを取得することもできます。次に、$.map() を使用して、各トラックを配列に配置します。SC.stream() を song[i].id で呼び出して、トラックの配列からランダムな曲を再生します。

SC.get('/users/123456/tracks/', function(tracks) {

  // get an array of tracks
  var song = $.map(tracks, function(i){
    return i;
  });

  var i = Math.floor(Math.random() * song.length)  // get a random value between 0 & the  of songs in SC account -1


  SC.stream(song[i].id, function(sound){
    sound.play();
  });
});
于 2014-03-02T01:26:37.417 に答える