【发布时间】:2014-05-13 11:07:52
【问题描述】:
我正在尝试从 SoundCloud 获取一个 mp3 文件,并将该文件与 SoundJS(来自 CreateJS)一起使用来制作音乐可视化工具。但是有一个问题。当我将文件路径分配给 SoundCloud 中的流 mp3 链接时,没有加载音乐并且代码卡在createjs.Sound.registerSound(src); // register sound, which preloads by default。但是当我将服务器上的文件分配给它时,它就可以工作了。
这是我得到的错误:
[Error] TypeError: 'undefined' is not an object (evaluating 'a.toString')
_parsePath (createjs-2013.12.12.min.js, line 15)
registerSound (createjs-2013.12.12.min.js, line 15)
init (MusicVisualizer.html, line 108)
onload (MusicVisualizer.html, line 9)
这行得通:
var assetsPath = "assets/"; // Path were mp3 is stored
var src = assetsPath + "Underground.mp3"; // set up the source
但这不是:
var src = 'http://api.soundcloud.com/tracks/'+track_id+'/stream?client_id='+client_id';
我输入了好的track_id和client_id。因为当我将链接粘贴到我的网络浏览器中时,链接会从 SoundCloud 重定向到带有访问代码和签名等的 mp3 文件,然后我可以看到该文件并播放它。上面的链接会立即重定向到 http://soundcloud.vo.llnwd.net/PEPEnVEvnxwb.128.mp3?AWSAccessKeyId=AKIAJNIAGLK7XA7YZSNQ&Expires=1323978179&Signature=yxVIOjsdOiwhlLOtCnk3aI1YN4M%3D&e=1298204179&h=7103a8645083f828f21e6d41aa0b96b5
之类的链接所以,简而言之,我无法通过链接播放 mp3 文件,但我可以在服务器上播放它。 你有解决这个问题的方法吗?
谢谢
【问题讨论】:
-
我不知道 SoundJS 是如何工作的,但我的猜测是它期望接收数据,但正如您所观察到的,您使用的 soundclound 链接会进行重定向而不是直接返回歌曲,所以该方法不是接收数据,而是从服务器获取重定向响应...
标签: javascript file audio mp3