説明
chrome.tabCapture
API を使用して、タブのメディア ストリームを操作します。
権限
tabCapture
概要
chrome.tabCapture API を使用すると、動画とファイルを含む MediaStream にアクセスできます。 読み上げることもできますこれは、ユーザーが拡張機能を呼び出した後にのみ呼び出すことができます。 拡張機能の操作ボタンをクリックする。これは Pod の IP アドレス activeTab 権限。
システム音声の保持
タブで MediaStream を取得すると、そのタブの音声は再生されなくなります。
提供します。これは、次の場合の getDisplayMedia()
関数の動作に似ています。
suppressLocalAudioPlayback
フラグが true に設定されている。
ユーザーへの音声再生を続けるには、次のように記述します。
const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);
これにより、新しい AudioContext
が作成され、タブの MediaStream
の音声がデフォルトに接続されます。
あります。
ストリーム ID
chrome.tabCapture.getMediaStreamId を呼び出すと、ストリーム ID が返されます。後で配信 ID から MediaStream にアクセスするには、次のように記述します。
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
使用制限
getMediaStreamId()
を呼び出した後は、
返されたストリーム ID を使用できます。
consumerTabId
を指定すると、getUserMedia()
呼び出し内の任意のフレームで ID を セキュリティオリジンが同じタブに 割り当てられています- この値を指定しない場合、Chrome 116 以降、 呼び出し元と同じレンダリング プロセスで生成できます。つまり、この IP アドレスからストリーム ID が オフスクリーン ドキュメントで使用できます。
Chrome 116 より前では、consumerTabId
を指定しなかった場合、ストリーム ID は両方に制限されていました。
呼び出し元のセキュリティ オリジン、レンダリング プロセス、レンダリング フレーム。
その他の情報
chrome.tabCapture
API の使用方法について詳しくは、以下をご覧ください。
音声録音とスクリーン キャプチャ。ここでは、Terraform を使用して
tabCapture
と関連 API を使用して、多くの一般的なユースケースを解決します。
型
CaptureInfo
プロパティ
-
全画面表示
ブール値
キャプチャするタブの要素が全画面モードかどうか。
-
status
タブの新しいキャプチャ ステータス。
-
tabId
数値
ステータスが変化したタブの ID。
CaptureOptions
プロパティ
-
オーディオ
ブール値(省略可)
-
audioConstraints
-
動画
ブール値(省略可)
-
videoConstraints
GetMediaStreamOptions
プロパティ
-
consumerTabId
数値(省略可)
後で
getUserMedia()
を呼び出してストリームを使用するタブのオプションのタブ ID。指定しない場合、結果のストリームは呼び出し元の拡張機能のみが使用できます。ストリームは、指定されたタブ内で、セキュリティ オリジンがコンサンバー タブのオリジンと一致するフレームでのみ使用できます。タブの生成元は、安全な生成元である必要があります(例:提供します。 -
targetTabId
数値(省略可)
キャプチャされるタブのタブ ID(省略可)。指定しない場合は、現在アクティブなタブが選択されます。拡張機能に
activeTab
権限が付与されているタブのみをターゲット タブとして使用できます。
MediaStreamConstraint
プロパティ
-
必須
オブジェクト
-
省略可
オブジェクト(省略可)
TabCaptureState
列挙型
「保留中」
「有効」
「停止」
「error」
メソッド
capture()
chrome.tabCapture.capture(
options: CaptureOptions,
callback: function,
)
現在アクティブなタブの表示領域をキャプチャします。キャプチャは、activeTab の仕組みと同様に、拡張機能の呼び出し後に、現在アクティブなタブでのみ開始できます。キャプチャはタブ内のページ ナビゲーション全体で維持され、タブを閉じるか、メディア ストリームが拡張機能によって閉じられると停止します。
パラメータ
-
オプション
返されるメディア ストリームを構成します。
-
callback
関数
callback
パラメータは次のようになります。(stream: LocalMediaStream) => void
-
ストリーム
LocalMediaStream
-
getCapturedTabs()
chrome.tabCapture.getCapturedTabs(
callback?: function,
)
キャプチャをリクエストしたタブ、またはキャプチャ中のタブのリスト(ステータス != 停止、ステータス != エラー)を返します。これにより、拡張機能は、既存のタブのキャプチャがあると、新しいタブのキャプチャが成功しない(または同じタブに対する冗長なリクエストを防止する)ことをユーザーに知らせることができます。
パラメータ
-
callback
関数(省略可)
callback
パラメータは次のようになります。(result: CaptureInfo[]) => void
-
件の結果
-
戻り値
-
Promise<CaptureInfo[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
getMediaStreamId()
chrome.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
)
ターゲット タブをキャプチャするためのストリーム ID を作成します。chrome.tabCapture.capture() メソッドに似ていますが、メディア ストリームではなくメディア ストリーム ID をコンシューマのタブに返します。
パラメータ
-
オプション
GetMediaStreamOptions (省略可)
-
callback
関数(省略可)
callback
パラメータは次のようになります。(streamId: string) => void
-
streamId
文字列
-
戻り値
-
Promise<文字列>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
イベント
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
タブのキャプチャ ステータスが変更されたときに発生するイベント。これにより、拡張機能の作成者はタブのキャプチャ ステータスを追跡し、ページ操作などの UI 要素の同期を維持できます。
パラメータ
-
callback
関数
callback
パラメータは次のようになります。(info: CaptureInfo) => void
-
情報
-