refresh date: 2026-09-25 robots: noindex
Beschrijving
Gebruik de chrome.tabCapture API om te communiceren met mediastreamtabbladen.
Rechten
tabCaptureOverzicht
Met de chrome.tabCapture API heb je 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 het recht activeTab.
Systeemaudio behouden
Als een MediaStream wordt verkregen voor een tabblad, wordt de audio op dat tabblad niet meer afgespeeld voor de gebruiker. Dit is vergelijkbaar met het gedrag van de functie getDisplayMedia() als de markering suppressLocalAudioPlayback is ingesteld op waar.
Gebruik het volgende om audio te blijven afspelen voor de gebruiker:
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 gekoppeld aan de standaardbestemming.
Stream-ID's
Als je chrome.tabCapture.getMediaStreamId aanroept, wordt er een stream-ID geretourneerd. Gebruik het volgende om later toegang te krijgen tot een MediaStream via de ID:
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
Gebruiksbeperkingen
Nadat je getMediaStreamId() hebt aangeroepen, gelden er beperkingen voor waar de geretourneerde stream-ID kan worden gebruikt:
- Als
consumerTabIdis ingevoerd, kan de ID worden gebruikt door eengetUserMedia()-aanroep in elk frame op het aangegeven tabblad met dezelfde beveiligingsoorsprong. - Als dit niet is gespecificeerd, kan de ID vanaf Chrome 116 worden gebruikt in elk frame met dezelfde beveiligingsoorsprong in hetzelfde weergaveproces als de beller. Dit betekent dat een stream-ID die is verkregen in een servicemedewerker, kan worden gebruikt in een offscreen document.
Als vóór Chrome 116 geen consumerTabId was opgegeven, werd de stream-ID beperkt tot de beveiligingsoorsprong, het weergaveproces en het weergaveframe van de beller.
Meer informatie
Ga naar Audio-opname en schermopname voor meer informatie over hoe je de chrome.tabCapture API gebruikt. Hier wordt uitgelegd hoe je tabCapture en gerelateerde API's gebruikt om een aantal veelvoorkomende use cases op te lossen.
Typen
CaptureInfo
Eigenschappen
-
volledig scherm
booleaans
Of een element in het tabblad dat wordt vastgelegd, in de modus voor volledig scherm staat.
-
status
De nieuwe opnamestatus van het tabblad.
-
tabId
getal
De ID van het tabblad waarvan de status is gewijzigd.
CaptureOptions
Eigenschappen
-
audio
booleaans optioneel
-
audioConstraints
MediaStreamConstraint optioneel
-
video
booleaans optioneel
-
videoConstraints
MediaStreamConstraint optioneel
GetMediaStreamOptions
Eigenschappen
-
consumerTabId
number optioneel
Optionele tabblad-ID van het tabblad dat later
getUserMedia()aanroept om de stream te gebruiken. Als je niets invoert, kan de resulterende stream alleen worden gebruikt door de aanroepende extensie. De stream kan alleen worden gebruikt door frames op het aangegeven tabblad waarvan de beveiligingsoorsprong overeenkomt met de oorsprong van het tabblad van de consument. De oorsprong van het tabblad moet een beveiligde oorsprong zijn, bijvoorbeeld HTTPS. -
targetTabId
number optioneel
Optionele tabblad-ID van het tabblad dat wordt vastgelegd. Als je niets opgeeft, wordt het huidige actieve tabblad geselecteerd. Alleen tabbladen waarvoor de extensie het recht
activeTabheeft gekregen, kunnen worden gebruikt als doeltabblad.
MediaStreamConstraint
Eigenschappen
-
verplicht
object
-
optioneel
object optioneel
TabCaptureState
Enum
"pending"
active
"stopped"
"error"
Methoden
capture()
chrome.tabCapture.capture(
options: CaptureOptions,
callback: function,
): void
Legt het zichtbare gebied van het actieve tabblad vast. Opname kan alleen worden gestart op het op dat moment actieve tabblad nadat de extensie is aangeroepen, vergelijkbaar met de manier waarop activeTab werkt. De opname wordt gehandhaafd tijdens paginanavigatie binnen het tabblad en stopt als het tabblad wordt gesloten of als de mediastream wordt gesloten door de extensie.
Parameters
-
opties
Hiermee stel je de geretourneerde mediastream in.
-
callback
functie
De parameter
callbackziet er zo uit:(stream: LocalMediaStream) => void
-
stream
LocalMediaStream
-
getCapturedTabs()
chrome.tabCapture.getCapturedTabs(
callback?: function,
): Promise<CaptureInfo[]>
Retourneert een lijst met tabbladen die om vastlegging hebben gevraagd of worden vastgelegd, d.w.z. status != gestopt en status != fout. Zo kunnen extensies de gebruiker laten weten dat er een bestaande tabbladopname is die voorkomt dat een nieuwe tabbladopname lukt (of om overbodige verzoeken voor hetzelfde tabblad te voorkomen).
Parameters
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: CaptureInfo[]) => void
-
resultaat
-
Retourzendingen
-
Promise<CaptureInfo[]>
Chrome 116 of hogerRetourneert een Promise die wordt omgezet met CaptureInfo[] voor vastgelegde tabbladen.
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getMediaStreamId()
chrome.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
): Promise<string>
Maakt een stream-ID 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 consumententabblad.
Parameters
-
opties
GetMediaStreamOptions optioneel
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(streamId: string) => void
-
streamId
tekenreeks
-
Retourzendingen
-
Promise<string>
Chrome 116 of hogerRetourneert een Promise die wordt omgezet met het resultaat. Als dit lukt, is het resultaat een ondoorzichtige tekenreeks die kan worden doorgegeven aan de
getUserMedia()API om een mediastream te genereren die overeenkomt met het doeltabblad. De gemaaktestreamIdkan maar één keer worden gebruikt en verloopt na een paar seconden als deze niet wordt gebruikt.Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
Evenementen
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
Gebeurtenis die wordt geactiveerd als de opnamestatus van een tabblad verandert. Zo kunnen auteurs van extensies de vastlegstatus van tabbladen bijhouden om UI-elementen zoals pagina-acties gesynchroniseerd te houden.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(info: CaptureInfo) => void
-
info
-