Soundcloud の後: 曲を再生しようとしたときに undefined のプロパティ 'id' を設定できませんでした (ありがとうございます) 次の作業を行います - 複数のトラックをオンデマンドで再生するために複数の SM2 インスタンスを準備したいと考えています。
コードは次のとおりです(今回は読みやすくするためにコンパイルされていないCoffeeScriptです。jsbin全体はここで見ることができますhttp://jsbin.com/ejapin/edit#javascript,html)
$ ->
SOUNDCLOUD_ID = '6d5064768cc29c71e1f66691f435589a'
PLAYLIST_ID = '1768866'
SC.initialize client_id: SOUNDCLOUD_ID
tracks = []
tracks_total = 0
tracks_ready = ->
for track in tracks
console.log track
track.play()
SC.get '/playlists/' + PLAYLIST_ID, (pl) ->
tracks_total = pl.tracks.length
for track in pl.tracks
console.log "Fetching"
SC.stream "/tracks/#{track.id}", {}, (sound) ->
tracks.push sound
console.log "+ Fetched #{tracks.length}"
if tracks.length == tracks_total
tracks_ready()
Fetching が 11 回ログに記録されていることがわかります。また、SM2 の swf が同じ回数要求されていることもわかります。
ただし、コールバックは (更新された) LASTトラックに対してのみ呼び出されます (まだサウンドは正常に再生されています)。
UPD:ところで、SM2 jsを複数回挿入することも問題のようです