2

これは基本的にこの質問と同じですが、より詳細になります。

Soundcloud + SoundManagerのバグ:ストリームのeqDataを読み取る

だから私はcanvas/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/。これは、クライアントがまだ一般に公開してほしくない未立ち上げのサイト用であるため、サイトから削除されます。:)

どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1

2

わかった。他の人がこれに遭遇し、迅速な修正がなかったと確信しています。私は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;

そして、曲が一時停止されたときに帯域幅を節約するために、実際にはミュートして、曲が一時停止された位置を保存します。彼らが一時停止を解除すると、私は彼らが中断した位置でそのトラックを再生し、ミュートを解除します...きれいではありませんが、私たちが持っているものでできる最善のことです(私は思います)。

これが誰かに役立つことを願っています。:)

于 2012-07-25T06:14:03.760 に答える