2013-03-04 108 views
5

我刚刚开始学习JavaScript,并且作为我第一次尝试创建使用Soundcloud的api作为音乐源的自定义音频播放器。如何使用Soundcloud API获取流入html5音频播放器?

到目前为止,这是我得到设置:

<!DOCTYPE html> 
<html> 
<head> 



<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="http://connect.soundcloud.com/sdk.js"></script> 

<script> 
window.onload = function() { 
SC.initialize({ 
    client_id: '10e27db0dacd00954d7160b4c092a6e2' //Demo ID 
}); 

SC.stream("/tracks/75868018", function(sound){ 
    $("audio-test").attr("src", sound.uri); 
}); 
}; 
</script> 



</head> 
<body> 

<audio id="audio-test" controls></audio> 

</body> 
</html> 
+0

需要多一点的就不仅仅这一点 - 你可以把JavaScript控件代码的引擎收录,所以我们可以采取看一眼? – CodeMoose 2013-03-04 18:48:28

+0

@CodeMoose添加了它,还添加了我正在用于此html5播放器的博客文章的链接。 – Ilja 2013-03-04 18:56:04

+0

完美,谢谢! – CodeMoose 2013-03-04 19:50:11

回答

7

好的,我想通了。问题是.stream() - 它意味着提供一个预先包装好的播放器,通过.play()函数进行部署。

如果使用SC.get()相反,你会真正进入轨道的特性,并能够将其嵌入音频标签。看到我的代码:http://jsfiddle.net/LpzpK/6/

仍然有一个问题 - 轨道被标记为401禁止,所以玩家只有“加载”。你必须找到一种方法来制作你想播放的歌曲。

+0

谢谢你很大的帮助,我想我已经看到了一窥如何处理401禁止在文档中的某处,我会尽力弄清楚;) – Ilja 2013-03-04 21:17:39

+4

让它工作!只需要追加/流?client_id = YOUR_ID sound.uri;))thnx再次寻求帮助! – Ilja 2013-03-04 21:33:24

+0

没问题 - 享受! – CodeMoose 2013-03-04 22:23:49

2

在粗略地看一眼,它看起来像所有的SoundCloud API对象都有直接链接到该资源的URI属性。在你的情况下,这将是sound.uri

在播放器代码顶部,您有一个<audio>标记 - 我的猜测是您要将其设置为您正在播放的曲目的URI值为src。您可以通过一个ID连接到它,并呼吁

SC.stream("/tracks/293", function(sound){ 
    $("[audio_id]").attr("src", sound.uri); 
}); 

与您选择的任何标签ID替换[audio_id]做到这一点。您可能仍然需要做一些事情来重新初始化/重新启动播放器,但每次播放时都会重启,但希望能够让您开始。让我知道它是如何工作的!

+0

试过它似乎没有工作。为了更好地理解所有内容,我简化了播放器,但仍然无法正常工作,这里是我的新代码http://pastebin.com/A76pgjMf – Ilja 2013-03-04 20:03:01

+0

我会将它放入小提琴中,回到你身边 – CodeMoose 2013-03-04 20:08:26

+0

我没有得到回调函数来运行。你必须做任何事情来实例化对象(var SC = new soundcloud();)或其他东西吗? – CodeMoose 2013-03-04 20:11:18