6

我刚刚开始学习 javascript,作为我的第一次尝试,我想创建自定义音频播放器,它使用 soundcloud 的 api 作为音乐源。

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

<!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>
4

2 回答 2

8

好的,想通了。问题在于 .stream() - 它旨在提供由 .play() 函数部署的预打包播放器。

如果您SC.get()改为使用,您实际上将访问轨道的属性,并能够将其嵌入到音频标签中。查看我的代码:http: //jsfiddle.net/LpzpK/6/

还有一个问题 - 曲目被标记为 401 禁止,所以播放器只是“加载”。您必须找到一种方法来公开您想要播放的曲目。

于 2013-03-04T21:06:49.293 回答
2

粗略一看,似乎所有 soundcloud API 对象都带有一个直接链接到资源的 URI 属性。在你的情况下,它会是sound.uri.

在您的播放器代码的顶部,您有一个<audio>标签 - 我猜您需要将它设置src为您正在播放的曲目的 URI 值。您可以通过将 ID 附加到它并调用

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

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

于 2013-03-04T19:48:21.123 回答