2012-10-17 39 views
3

我的問題與this一樣在這裏,但是由於問題從未解決,我不能私下給PeeHaa發消息問我要問的答案再來這裏。從soundcloud API獲得正確的.mp3 url與soundmanager2一起使用360玩家

我已經成功查詢了soundcloud api,並獲得了每個曲目的stream_url,並將其添加到我的360播放器(demo here)的所有hrefs中。我對要素代碼看起來是這樣的:

<div class="ui360"> 
<a href="/path/to/an.mp3" data-title="Track title">play "an.mp3"</a> 
</div> 

我有這樣的劇本找到與數據所有權的屬性,所有的一個標籤,給他們基礎上,stream_url正確HREF,但是當我嘗試點擊soundmanager圖標在瀏覽器中並播放曲目,它只會被重定向到.mp3網址。

SC.initialize({ 
    client_id: 'MY_CLIENT_ID' 
}); 

SC.get('/playlists/2450655', 'allow_redirects=False', function(playlist) { 

    var titles = $('.audio .ui360 a').each(function(index){ 
    this.index = index; 
    }); 

    for (var i = 0; i < playlist.tracks.length; i++) {  
    var id = '?client_id=MY_CLIENT_ID'  
    for (var j = 0; j < titles.length; j++) {  
     if (playlist.tracks[i].title === $(titles[j]).attr('data-title')) { 
     $(titles[j]).attr('href', playlist.tracks[i].stream_url+id) 
     }    
    }  
    } 

}); 

有沒有人知道如何獲得以這種方式播放在soundcloud上託管的曲目的正確url?

回答

1

爲什麼不直接使用SoundCloud JavaScript SDK來播放曲目?例如:

SC.get('/playlists/2450655', function(playlist) { 
    $(playlist.tracks).each(function(index, track) { 
    $('a[href="' + track.stream_url + '"]').click(function(e) { 
     e.preventDefault(); 
     SC.stream('/tracks/' + track.id, function(sound) { 
     sound.play(); 
     }); 
    }); 
    }); 
}); 

請問您是否解決了您的問題,或者您是否存在需要解析URL的特定原因?

+0

是的,我得到了成功的工作。我想這樣做的原因是使用360球員。 http://www.schillmania.com/projects/soundmanager2/demo/360-player/ – satyrsynth

5

我知道這是一個老問題,但問題是駕駛我逼瘋了,我終於想通了,所以這是我對別人的答案:

如果您指定的一個mp3 MIME類型SoundManager類將工作鏈接:

<div class="ui360"> 
    <a type="audio/mp3" href="https://api.soundcloud.com/tracks/49349198/stream?client_id=YOUR_CLIENT_ID" data-title="Track title">play "an.mp3"</a> 
</div>