chrome.tabCapture

説明

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

プロパティ

  • 全画面表示

    ブール値

    キャプチャするタブの要素が全画面モードかどうか。

  • タブの新しいキャプチャ ステータス。

  • tabId

    数値

    ステータスが変化したタブの ID。

CaptureOptions

プロパティ

GetMediaStreamOptions

Chrome 71 以降

プロパティ

  • consumerTabId

    数値(省略可)

    後で getUserMedia() を呼び出してストリームを使用するタブのオプションのタブ ID。指定しない場合、結果のストリームは呼び出し元の拡張機能のみが使用できます。ストリームは、指定されたタブ内で、セキュリティ オリジンがコンサンバー タブのオリジンと一致するフレームでのみ使用できます。タブの生成元は、安全な生成元である必要があります(例:提供します。

  • targetTabId

    数値(省略可)

    キャプチャされるタブのタブ ID(省略可)。指定しない場合は、現在アクティブなタブが選択されます。拡張機能に activeTab 権限が付与されているタブのみをターゲット タブとして使用できます。

MediaStreamConstraint

プロパティ

  • 必須

    オブジェクト

  • 省略可

    オブジェクト(省略可)

TabCaptureState

列挙型

「保留中」

「有効」

「停止」

「error」

メソッド

capture()

<ph type="x-smartling-placeholder"></ph> フォアグラウンドのみ
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)

現在アクティブなタブの表示領域をキャプチャします。キャプチャは、activeTab の仕組みと同様に、拡張機能の呼び出し後に、現在アクティブなタブでのみ開始できます。キャプチャはタブ内のページ ナビゲーション全体で維持され、タブを閉じるか、メディア ストリームが拡張機能によって閉じられると停止します。

パラメータ

  • オプション

    返されるメディア ストリームを構成します。

  • callback

    関数

    callback パラメータは次のようになります。

    (stream: LocalMediaStream) => void

    • ストリーム

      LocalMediaStream

getCapturedTabs()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)

キャプチャをリクエストしたタブ、またはキャプチャ中のタブのリスト(ステータス != 停止、ステータス != エラー)を返します。これにより、拡張機能は、既存のタブのキャプチャがあると、新しいタブのキャプチャが成功しない(または同じタブに対する冗長なリクエストを防止する)ことをユーザーに知らせることができます。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (result: CaptureInfo[]) => void

戻り値

  • Promise&lt;CaptureInfo[]&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getMediaStreamId()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 71 以降 をご覧ください。
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