【问题标题】:SoundCloud + Soundmanager2 + EQDataSoundCloud + Soundmanager2 + EQData
【发布时间】:2012-07-25 04:07:54
【问题描述】:

这与这个问题基本相同,但更详细:

Soundcloud + SoundManager bug: reading a stream's 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 问题,但似乎其他一些人也遇到了问题,但直到现在我都无法在任何地方找到任何解决方案。

链接在这里:http://nikru.com/viz/。它被从网站中删除,因为它是为客户的未启动网站准备的,他们不希望公众看到。 :)

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 我一直在研究可能是重定向问题或 crossdomain.xml 问题。我相信可能两者兼而有之。首先,soundcloud 从他们的轨道流重定向到他们的云软管设置(ec-media.soundcloud.com),我用一个 php 文件修复了它,该文件将这些文件解析为他们的最终 URL。但是我发现他们的云托管没有跨域文件:ec-media.soundcloud.com/crossdomain.xml,这意味着当我尝试直接从那里提取时它会失败。可能需要 SoundCloud 解决这个问题...

标签: javascript flash audio-streaming soundcloud soundmanager2


【解决方案1】:

好的。我敢肯定其他人也遇到过这种情况,但没有快速解决。我希望这对其他人有所帮助,因为我已经玩了一天左右的可能性,并且认为我有适合每个人的解决方法。

当 SoundManager2 第一次从 http://api.soundcloud.com/tracks/9708215/stream?consumer_key={YOUR KEY} 页面请求歌曲时,会发生什么情况。这很棒,歌曲可以播放,因为 api.soundcloud.com 有一个 crossdomain.xml 文件。糟糕的是,SoundManager2 在下一个请求(暂停/播放或下一首/上一首曲目)上只是回到它所知道的内容(这是 ec-media.soundcloud.com 上的 301 页面,正如我之前提到的 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;

然后为了在歌曲暂停时节省带宽,我实际上只是将其静音并保存歌曲暂停的位置。当他们取消暂停时,我会在他们停止的位置播放该曲目并取消静音......这并不漂亮,但这是我们可以用现有的东西做的最好的(我认为)。

希望这对某人有所帮助。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多