1

このサイトについて

簡単な概要

左側の[リッスン]タブをクリックすると、soundcloudプレーヤーが表示されます(実際には、スクロール可能なペイン内にいくつかあります)。再生​​をクリックして、パネルを閉じる(jQueryhide()メソッドを使用)ことでオーディオも停止することを確認します。

私がhide()メソッドについて知っていたことから、オブジェクトは非表示になっているだけで、破棄されていません。Firefoxのインスペクターを使用すると、非表示にした後もサウンドクラウドプレーヤーのインスタンスを表示できるため、これは正しいようです。では、なぜオーディオが一時停止するのですか?

使用したコード

現在「ドロワー」に影響を与えるjquery

$(document).ready(function(){
            $(".sctrigger").click(function(){
                $(".scdrawer").toggle("slow");
                $(this).toggleClass("active");
                return false;
             });
            $("#scMain").scrollable({
                  vertical: true,
                 keyboard: 'static',
  }).navigator("#scNavi");

目標

スライドアウトパネルを閉じるときに、再生が中断されないようにしたいと思います。

追加機能ですが、プレーヤーを呼び出して、トラック名とアーティスト、および閉じたときにページに残る[リッスン]タブ内に停止ボタンを表示すると便利です。

考えられる解決策

プレーヤーが破壊されている場合、プレーヤーを非表示にして完全に削除できないjqueryメソッドはありますか?

解決策の1つは、ページ内にプレーヤーコードを埋め込み、soundcloud apiを使用して、自分のアイコンなどを使用して関数を呼び出すことだと思いますが、これは、特に私の不慣れさと最小限の経験を考慮すると、多くのビルド時間です。 html5ウィジェットに非常に満足しています。

追加機能について; ウィジェットでJavaベースの呼び出しを使用してトラック情報を取得できますか?

これは私の最初の投稿なので、標準に準拠していない場合はお詫びします。SOのコミュニティに感謝します。このサイトが大好きです。

4

1 に答える 1

0

エラーを再現できません(Chrome 19、UbuntuのFirefox 13):[リッスン]タブをすばやくクリックしても、再生は正常に続行されます。

jQuery.hideは実際、指定したコンテナ要素を非表示にするだけで、子ノードにはアクセスしないため、子ノードは確実に破棄されません。

それは永続的に一時停止しているのですか、それとも再生が一時的に中断するだけですか?後者の場合、おそらく問題の一部は、非表示のアニメーションを実行するためにブラウザが実行しなければならない余分な処理がオーディオ再生をブロックしていることである可能性がありますか?javascript /レンダリングがメディアの再生に影響を与えるのを見たことがないので、これは少し驚くべきことです。非表示からアニメーションを削除してこれをテストし、それによって何かが変わるかどうかを確認できます。

トラック情報を取得したり、独自の呼び出しを介して再生を制御したりする場合は、ウィジェットAPIを使用できます。トラック情報(つまり、タイトル、アートワークのURL、ユーザー名など、APIドキュメントに記載されているデータ)を取得するには、次を使用できます。SC.Widget(...).getCurrentSound()

于 2012-06-08T03:10:27.003 に答える