2

SoundCloud を自分のサイトに統合し、HTML5 プレーヤー ウィジェットを使用しています。

私のサイトは、プレイリストとオート アドバンスを作成します。

テストで次の問題が発生しています。

一部のサウンドは再生されず、HTML5 ウィジェットに「404 エラー: このサウンドが見つかりませんでした」というメッセージが表示されます。

YouTube API も使用しており、エラーを簡単に処理できる onError イベントがあり、私の特定のケースではプレイリストの次のトラックにスキップします。

ドキュメントと StackOverflow を精査しましたが、SoundCloud のこの一般的なユースケースを処理する方法について言及されていないことに驚いています。

SC HTML5 ウィジェットでイベント バインディングを使用していますが、エラー イベントについて言及されていませんか??

問題は、どうすれば 404 をトラップしてカスタム コードを実行できるかということです。

素晴らしいAPIをありがとう!

4

2 に答える 2

3

私はこれと同じ問題を抱えていて、それに対する回避策を思いつきました。関数内でウィジェットを初期化し、関数の先頭で setTimeout() を実行し、再生またはエラー イベントで clearTimeout() を実行します。これにより、トラックが再生またはエラーをスローした場合、イベント リスナーで処理できます。 setTimeout() 内の関数で処理できませんか。

function createSoundcloudWidget() {
    var soundcloudTimeout = setTimeout(function() {
        onError();//the function to call when you get an error that doesn't throw an event
    }, 3000)
    var iframe = document.querySelector('#SCwidget');
    WIDGET = SC.Widget(iframe);

    WIDGET.bind(SC.Widget.Events.ERROR, function(eventData) {
        clearTimeout(soundcloudTimeout); //clears timeout
    }
    WIDGET.bind(SC.Widget.Events.READY, function(eventData) {
        clearTimeout(soundcloudTimeout); //clears timeout
    });
}

完全ではありませんが、ウィジェットをレンダリングしないトラックで機能を実行できるようになります。

于 2014-04-23T17:17:36.487 に答える
0

SoundCloud HTML5 widget supports SC.Widget.Events.ERROR event today.

Errors can be caught with:

widget.bind(SC.Widget.Events.ERROR, function() {
 // error handling
});

Error event doesn't provide error message or other details as far as I know.

于 2013-12-11T11:21:26.790 に答える