Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SoundCloud+;Soundmanager2+;EQData_Javascript_Flash_Audio Streaming_Soundcloud_Soundmanager2 - Fatal编程技术网

Javascript SoundCloud+;Soundmanager2+;EQData

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.)如果您停止一个磁道并重新启动它,

这基本上与该问题相同,但更为详细:

所以我有一个使用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的问题,但似乎其他人也有问题,但直到现在我还无法找到任何解决方案

此处提供链接:。它被从网站中剥离出来,因为它是针对客户未发布的网站,他们不想让公众看到。:)

非常感谢您的帮助


谢谢

好的。我相信其他人也遇到过这种情况,但没有快速解决办法。我希望这能帮助其他人,因为我已经玩了一天左右的可能性,我认为我有一个解决每个人的办法

当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对此进行修复。。。