Javascript SoundCloud+;Soundmanager2+;EQData
这基本上与该问题相同,但更为详细: 所以我有一个使用canvas/svg/what have you的可视化工具,当它从SoundCloud/SoundManager2接收EQData时看起来很棒,但是有一些非常奇怪的事件正在发生,导致它没有那么酷 1.)当您使用SMSound.pause()或任何变体(SoundManager.togglePause等)然后恢复时,所有EQData/WaveformData停止进入SoundManager2,它只会归零 2.)如果您停止一个磁道并重新启动它,所有EQData/WaveformData都会停止 3.)偶尔,在没有警告的情况下,EQData/WaveformData会停止进入SM2,而可视化工具也会停止,如果我进入下一个曲目,它会再次启动,但它从未在30秒内100%工作过一首歌曲 我一直无法确定这是SoundCloud还是SoundManager2的问题,但似乎其他人也有问题,但直到现在我还无法找到任何解决方案 此处提供链接:。它被从网站中剥离出来,因为它是针对客户未发布的网站,他们不想让公众看到。:) 非常感谢您的帮助Javascript SoundCloud+;Soundmanager2+;EQData,javascript,flash,audio-streaming,soundcloud,soundmanager2,Javascript,Flash,Audio Streaming,Soundcloud,Soundmanager2,这基本上与该问题相同,但更为详细: 所以我有一个使用canvas/svg/what have you的可视化工具,当它从SoundCloud/SoundManager2接收EQData时看起来很棒,但是有一些非常奇怪的事件正在发生,导致它没有那么酷 1.)当您使用SMSound.pause()或任何变体(SoundManager.togglePause等)然后恢复时,所有EQData/WaveformData停止进入SoundManager2,它只会归零 2.)如果您停止一个磁道并重新启动它,
谢谢 好的。我相信其他人也遇到过这种情况,但没有快速解决办法。我希望这能帮助其他人,因为我已经玩了一天左右的可能性,我认为我有一个解决每个人的办法 当SoundManager2第一次从{YOUR KEY}页面请求歌曲时,会发生这样的情况。这很好,歌曲可以播放,因为api.soundcloud.com有一个crossdomain.xml文件。但糟糕的是,SoundManager2在下一个请求(暂停/播放或下一个/上一个曲目)时只返回到它知道的内容(这是ec-media.soundcloud.com上的一个301’d页面,正如我之前提到的,ec-media.soundcloud.com没有crossdomain.xml文件),这并不好。我的修复方法是,每次我重新开始一首歌曲时,我都会修改声音的URL以包含一个新的ts={time}参数,然后在SMSound上运行.load(),这会导致重新加载并修复问题
var $track = $(this),
data = $track.data('track'),
playing = $track.is('.active');
newURL = soundManager.sounds["track_" + data.id].url.split("&ts=")[0];
newURL += "&ts=" + Math.round((new Date()).getTime() / 1000);
soundManager.sounds["track_" + data.id].url = newURL;
soundManager.sounds["track_" + data.id].load();
soundManager.sounds["track_" + data.id].url = newURL;
然后为了节省暂停歌曲时的带宽,我实际上只是将其静音并保存歌曲暂停的位置。当他们取消暂停时,我在他们停止的位置播放该曲目并取消静音。。。这并不漂亮,但这是我们所能做的最好的(我认为)
希望这对某人有帮助。:) 我一直在研究重定向或crossdomain.xml问题的潜在可能性。我相信两者都有可能。首先,soundcloud正在从他们的跟踪流重定向到他们的云hosing设置(ec media.soundcloud.com),我用一个php文件修复了这个设置,该文件将解析这些内容到他们的最终URL。然而,我发现他们的云主机并没有跨域文件:这意味着当我试图直接从那个里拉时,它失败了。可能需要SoundCloud对此进行修复。。。