chrome.tabCapture

Beschrijving

Gebruik de chrome.tabCapture API om te communiceren met tabbladmediastreams.

Machtigingen

tabCapture

Begrippen en gebruik

Met de chrome.tabCapture API hebt u toegang tot een MediaStream met video en audio van het huidige tabblad. Deze kan alleen worden aangeroepen nadat de gebruiker een extensie heeft aangeroepen, bijvoorbeeld door op de actieknop van de extensie te klikken. Dit is vergelijkbaar met het gedrag van de machtiging "activeTab" .

Systeemaudio behouden

Wanneer een MediaStream voor een tabblad wordt verkregen, wordt de audio in dat tabblad niet meer voor de gebruiker afgespeeld. Dit is vergelijkbaar met het gedrag van de functie getDisplayMedia() wanneer de vlag suppressLocalAudioPlayback op true staat.

Om audio voor de gebruiker te blijven afspelen, doet u het volgende:

const output = new AudioContext(); const source = output.createMediaStreamSource(stream); source.connect(output.destination); 

Hiermee wordt een nieuwe AudioContext gemaakt en wordt de audio van de MediaStream van het tabblad verbonden met de standaardbestemming.

Stream-ID's

Het aanroepen van chrome.tabCapture.getMediaStreamId() retourneert een stream-ID. Om later toegang te krijgen tot een MediaStream via de ID, gebruikt u het volgende:

navigator.mediaDevices.getUserMedia({   audio: {     mandatory: {       chromeMediaSource: "tab",       chromeMediaSourceId: id,     },   },   video: {     mandatory: {       chromeMediaSource: "tab",       chromeMediaSourceId: id,     },   }, }); 

Gebruiksbeperkingen

Na het aanroepen van getMediaStreamId() zijn er beperkingen aan waar de geretourneerde stream-ID kan worden gebruikt:

  • Als consumerTabId is opgegeven, kan de ID worden gebruikt door een getUserMedia() aanroep in elk frame in het opgegeven tabblad dat dezelfde beveiligingsoorsprong heeft.
  • Wanneer dit niet is gespecificeerd, kan de ID vanaf Chrome 116 worden gebruikt in elk frame met dezelfde beveiligingsoorsprong in hetzelfde renderproces als de aanroeper. Dit betekent dat een stream-ID die is verkregen in een service worker, kan worden gebruikt in een offscreen-document .

Vóór Chrome 116 was de stream-ID, wanneer er geen consumerTabId werd opgegeven, beperkt tot zowel de beveiligingsoorsprong, het renderproces als het renderframe van de aanroeper.

Meer informatie

Zie Audio-opname en schermopname voor meer informatie over het gebruik van de chrome.tabCapture API. Dit laat zien hoe u tabCapture en gerelateerde API's kunt gebruiken om een aantal veelvoorkomende use cases op te lossen.

Typen

CaptureInfo

Eigenschappen

  • volledig scherm

    Booleaanse

    Of een element op het tabblad dat wordt vastgelegd, in de modus voor volledig scherm staat.

  • De nieuwe vastlegstatus van het tabblad.

  • tabbladId

    nummer

    De id van het tabblad waarvan de status is gewijzigd.

CaptureOptions

Eigenschappen

GetMediaStreamOptions

Chroom 71+

Eigenschappen

  • consumerTabId

    nummer optioneel

    Optionele tab-id van het tabblad dat later getUserMedia() aanroept om de stream te consumeren. Indien niet gespecificeerd, kan de resulterende stream alleen worden gebruikt door de aanroepende extensie. De stream kan alleen worden gebruikt door frames in het opgegeven tabblad waarvan de beveiligingsoorsprong overeenkomt met de oorsprong van het consumerende tabblad. De oorsprong van het tabblad moet een beveiligde oorsprong zijn, bijvoorbeeld HTTPS.

  • doelTabId

    nummer optioneel

    Optionele tabblad-ID van het tabblad dat wordt vastgelegd. Indien niet gespecificeerd, wordt het huidige actieve tabblad geselecteerd. Alleen tabbladen waarvoor de extensie de machtiging activeTab heeft gekregen, kunnen als doeltabblad worden gebruikt.

MediaStreamConstraint

Eigenschappen

  • verplicht

    voorwerp

  • optioneel

    object optioneel

TabCaptureState

Enum

"in behandeling"

"actief"

"gestopt"

"fout"

Methoden

capture()

Alleen voorgrond
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)
: void

Legt het zichtbare gebied van het momenteel actieve tabblad vast. Vastleggen kan pas worden gestart op het momenteel actieve tabblad nadat de extensie is geactiveerd , vergelijkbaar met de manier waarop activeTab werkt. Vastleggen blijft behouden tijdens paginanavigatie binnen het tabblad en stopt wanneer het tabblad wordt gesloten of de mediastream door de extensie wordt gesloten.

Parameters

  • Configureert de geretourneerde mediastream.

  • terugbellen

    functie

    De callback ziet er als volgt uit:

    (stream: LocalMediaStream) => void

    • stroom

      LokaleMediaStream

getCapturedTabs()

chrome.tabCapture.getCapturedTabs(): Promise<CaptureInfo[]>

Retourneert een lijst met tabbladen die een vastlegging hebben aangevraagd of die worden vastgelegd, d.w.z. status != gestopt en status != fout. Dit stelt extensies in staat de gebruiker te informeren dat er een bestaande tabbladvastlegging is die een nieuwe tabbladvastlegging zou verhinderen (of om redundante aanvragen voor hetzelfde tabblad te voorkomen).

Retourneren

getMediaStreamId()

Chroom 71+
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
)
: Promise<string>

Maakt een stream-ID aan om het doeltabblad vast te leggen. Vergelijkbaar met de methode chrome.tabCapture.capture(), maar retourneert een mediastream-ID in plaats van een mediastream naar het gebruikerstabblad.

Parameters

Retourneren

  • Belofte<string>

    Chroom 116+

Evenementen

onStatusChanged

chrome.tabCapture.onStatusChanged.addListener(
  callback: function,
)

Gebeurtenis die wordt geactiveerd wanneer de vastlegstatus van een tabblad verandert. Dit stelt extensieontwikkelaars in staat de vastlegstatus van tabbladen bij te houden en gebruikersinterface-elementen zoals pagina-acties synchroon te houden.

Parameters