説明
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 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。
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 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。
イベント
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
タブのキャプチャ ステータスが変更されたときに発生するイベント。これにより、拡張機能の作成者はタブのキャプチャ ステータスを追跡し、ページ操作などの UI 要素の同期を維持できます。
パラメータ
-
callback
関数
callback
パラメータは次のようになります。(info: CaptureInfo) => void
-
情報
-