2017-01-14 10 views
2

私は、特定のタブでコンソールコマンドを実行し、そのタブがオーディオを再生しているかどうかブール値の回答を受け取りたいと考えています。 (通常、タブのタイトルの近くに小さなスピーカーのアイコンとして記載されています)Chromeタブで音声が再生されているかどうかを検出するにはどうすればよいですか?

これを行うことはできますか?

答えて

3

このようなものはあなたの問題を解決します: !!Array.prototype.find.call(document.querySelectorAll('audio,video'),function(elem){return elem.duration > 0 && !elem.paused}) 現在再生中のオーディオとビデオの要素の両方を検出します。クロスブラウザで動作します。

3

chrome.tabs APIを使用して、ChromeタブでChrome拡張機能で音声を再生しているかどうかを検出できます。以下に説明するように、APIは、ブールaudibleプロパティを提供します:タブは秒 の過去のカップル以上の音を生産しているかどうか

(それはミュートもあれば聞いていない可能性があります)。スピーカーのオーディオインジケータが表示されているかどうかに相当します。

出典:https://developer.chrome.com/extensions/tabs

それは、現在のページのコンテキストから実行されるようコンソール自体からのタブにアクセスする方法は、ありません。 Chrome拡張機能のバックグラウンドページでは、すべてのタブにアクセスでき、上で概説したAPIを使用してクエリを実行できます。拡張機能では、開いているすべてのタブのリストを表示するパネルと、オーディオが再生されているかどうかを示すフラグを提供するだけです。

脇:あなただけクロームコンソールを使用して現在のタブにすばやくミュートHTML5オーディオ/ビデオしたい場合は、以下を実行することができます($$document.querySelectorAll()と同等です):おそらく

$$('video', 'audio').forEach((element) => element.muted = true); 
+0

ありがとうございました! 私の意図は、タブが音楽を再生しているかどうかをコンソールのエラーを検出する小さなアナリティクスアプリで見つけ、クライアントがオーディオが特定のURLにロードされているかどうかを知りたい場合です。 chrome.tabs APIを使用してみます。 –

関連する問題