我的问题与此处的this相同,但问题从未得到解决,我不能私下向PeeHaa发出信息,要求我在这里再次提出答案。
我已经成功查询了soundcloud api,并获得了每首曲目的stream_url,并将其添加到我的360播放器(demo here)的所有href中。我的元素代码如下所示:
<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上播放的曲目的网址?
答案 0 :(得分:5)
我知道这是一个古老的问题,但是这个问题让我陷入困境,我终于明白了,所以这是我对其他人的回答:
如果在链接中指定mp3 mimetype,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>
答案 1 :(得分: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();
});
});
});
});
这会解决您的问题,还是您需要解析网址?