1

Web サイトでバックグラウンド ミュージックを再生するのは恐ろしい考えであることは十分承知しています。しかし、私のクライアントはそれを主張します。私たちはそれであらゆる種類の問題を抱えてきました。まず、曲をブラウザーに「追従」させるスクリプトを見つけなければなりませんでした (そのようなものを探している人のために「HTML5 バックグラウンド オーディオ プレーヤー」と呼ばれています)。

しかし、現在、新たな問題が発生しています。一度に複数のタブまたはウィンドウでサイトを開いている場合、音楽は自動的に再生されます。

また、新しいタブまたはウィンドウでサイトの別のページを開くことにした場合、簡単な解決策は手動でサウンドをミュートすることであることも十分に承知しています. 私はこれについて議論しました。しかし、私のクライアントは非常に「特殊な」男性であり、「私が新しいページを開いたときにコンピューターが認識すべきである」と主張しています。

私の質問は次のとおりです。そのようなものは存在しますか? これが JavaScript でどのように達成されるかはわかりません。

4

2 に答える 2

1

Cookie または HTML5 セッション ストレージを使用して、プレイが開始されたことを記録する必要があります。ある場合は、後続のページの読み込みで開始しません。

于 2012-11-14T23:36:17.267 に答える
0

新しいタブを動的に開くことについて話している場合、リンクをクリックしてクリック呼び出しをwindow.open();行う.open()と、子ウィンドウへの参照が返され、親スクリプトで通信できます。var childWindow = window.open(url);

そうでなければ、クッキー?
新しいタブが開かれた場合に変更できる、クエリ文字列のセッション パラメーター。

html5-audio のみを使用している場合の別の提案は、を使用するようなものlocalStorageです。HTML5をサポート
するほとんどのブラウザは、 . localStorage が実際にサポートされ、有効になっていることを明示的に確認する必要がありますが、それは良い市民権です。 window.Audio;window.localStorage;

次に、タブのランダム化された ID を設定し、その ID を session-storage に保存し、「is_playing」または localStorage の任意のフィールドを、sessionStorage でタブに与えた ID に設定できるはずです...

...そして、新しいタブごとに、「is_playing」が localStorage で空であるかどうか、または ID が sessionStorage で設定されたものと等しいかどうかを確認します。

localStorage と sessionStorage の違いは、ブラウザを閉じると sessionStorage が空になることと、タブ間で共有できないことです。

于 2012-11-14T23:44:20.027 に答える