这在本质上是相同的,因为这问题,但更多的细节:
的SoundCloud + SoundManager类BUG:读一个流的EQDATA
所以我用帆布/ SVG有一个可视化/你有什么当它从SoundCloud / SoundManager2接收EQDATA但也有正在发生一些非常奇怪的事件,导致它不会像酷看起来很棒。
1)当您使用SMSound.pause()或任何变化(SoundManager.togglePause等),然后恢复所有EQDATA / WaveformData停止来SoundManager2,它只是零出。
2)如果停止跟踪并重新启动它,所有的EQDATA / WaveformData停止。
3)偶尔没有任何警报,EQDATA / WaveformData只是停止来SM2和可视化只是停止,如果我去到下一首曲目再次启动,但它从来没有在30秒内工作100%的一首歌曲。
我已经无法弄清楚这是否是一个的SoundCloud或SoundManager2问题,但似乎有些其他人有问题,但到现在为止我一直无法找到任何地方的任何解决方案。
链接可以在这里找到: http://nikru.com/viz/ 。 它剥离出来的网站,因为这是他们不希望公众看到又一个客户的未发布网站。 :)
任何帮助非常感激。
谢谢!
好的。 我敢肯定,其他人都遇到过这一点,并没有速战速决。 我希望这可以帮助别人,因为我一直在玩的可能性了一天左右,觉得我有每个人的解决方法。
什么情况是,当SoundManager2调用歌首次从请求http://api.soundcloud.com/tracks/9708215/stream?consumer_key= {你的关键}页。 这是伟大的歌曲可以播放刚刚找到,因为api.soundcloud.com具有crossdomain.xml文件。 什么吸虽然是SoundManager2上的下一个请求(暂停/播放或下一首/上一首曲目)刚刚回到它知道什么(这是在ec-media.soundcloud.com一个301'd页面,就像我之前提到的EC- media.soundcloud.com没有crossdomain.xml文件),这是不是很大。 我的解决方法是每次我开始播放歌曲一遍我修改声音的URL包括一个新的TS = {}时间参数,然后在其上导致重装和修复该问题的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;
然后,以节省带宽当歌曲暂停我其实只是静音并保存歌曲被暂停在该位置。 当他们取消暂停我玩的是赛道上的位置,他们离开,并取消静音...这是不漂亮,但它是我们可以用我们所拥有的(我认为)做到最好。
希望这可以帮助别人。 :)