我正在尝试从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。因为当我将链接粘贴到Web浏览器中时,该链接会使用访问代码和签名等从SoundCloud重定向到mp3文件,然后我可以看到并播放该文件。上面的链接立即重定向到http://soundcloud.vo.llnwd.net/PEPEnVEvnxwb.128.mp3?AWSAccessKeyId=AKIAJNIAGLK7XA7YZSNQ&Expires=1323978179&Signature=yxVIOjsdOiwhlLOtCnk3aI1YN4M%3D&e=1298204179&h=7103a8645083f828f21e6d41aa0b96b5之类的链接
简而言之,我无法通过链接播放mp3文件,但可以在服务器端播放该文件。
您有解决此问题的方法吗?
谢谢
最佳答案
此方法有2个问题,它们将无法正常工作。
目前,SoundJS仅处理加载文件(Underground.mp3),无法处理重定向或代理或不具有音乐文件类型(.mp3,.ogg等)的任何文件,并返回可加载文件。
第二个问题是SoundJS无法处理流文件,因此流源将不起作用。
希望能有所帮助。
关于javascript - 使用javascript播放mp3链接作为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23629550/