Descrizione
Utilizza l'API chrome.tabCapture
per interagire con gli stream multimediali delle schede.
Autorizzazioni
tabCapture
Panoramica
L'API chrome.tab Capture consente di accedere a un file MediaStream contenente video e audio della scheda corrente. Può essere chiamato solo dopo che l'utente ha richiamato un'estensione, ad esempio facendo clic sul pulsante di azione dell'estensione. Questo comportamento è simile al comportamento Autorizzazione activeTab.
Conservazione dell'audio di sistema
Quando ottieni un MediaStream per una scheda, l'audio al suo interno non verrà più riprodotto
all'utente. Questo comportamento è simile a quello della funzione getDisplayMedia()
quando
il flag suppressLocalAudioPlayback
è impostato su true.
Per continuare a riprodurre l'audio per l'utente, utilizza quanto segue:
const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);
Viene creato un nuovo AudioContext
e l'audio del dispositivo MediaStream
della scheda viene collegato a quello predefinito
destinazione.
ID stream
La chiamata a chrome.tabCapture.getMediaStreamId restituirà un ID stream. A più tardi accedi a MediaStream dall'ID, utilizza quanto segue:
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
Limitazioni all'utilizzo
Dopo aver chiamato getMediaStreamId()
, sono previste limitazioni su dove
l'ID stream restituito può essere utilizzato:
- Se
consumerTabId
è specificato, l'ID può essere utilizzato da una chiamatagetUserMedia()
in qualsiasi frame nella una determinata scheda che ha la stessa origine di sicurezza. - Se non è specificato, a partire da Chrome 116 l'ID può essere utilizzato in qualsiasi frame con stessa origine di sicurezza nello stesso processo di rendering del chiamante. Ciò significa che un ID stream ottenuto di un service worker possono essere utilizzate in un documento fuori schermo.
Prima di Chrome 116, quando non veniva specificato un valore consumerTabId
, l'ID stream era limitato a entrambi
l'origine della sicurezza, il processo di rendering e il frame di rendering del chiamante.
Scopri di più
Per scoprire di più su come utilizzare l'API chrome.tabCapture
, consulta
Registrazione audio e acquisizione schermo. Questo dimostra come utilizzare
tabCapture
e le relative API per risolvere una serie di casi d'uso comuni.
Tipi
CaptureInfo
Proprietà
-
schermo intero
booleano
Se un elemento della scheda acquisita è in modalità a schermo intero.
-
stato
Il nuovo stato di acquisizione della scheda.
-
tabId
numero
L'ID della scheda il cui stato è cambiato.
CaptureOptions
Proprietà
-
audio
booleano facoltativo
-
audioConstraints
MediaStreamConstraint facoltativo
-
video
booleano facoltativo
-
videoConstraints
MediaStreamConstraint facoltativo
GetMediaStreamOptions
Proprietà
-
consumerTabId
numero facoltativo
ID facoltativo della scheda che richiamerà in seguito
getUserMedia()
per consumare lo stream. Se non specificato, lo stream risultante può essere utilizzato solo dall'estensione di chiamata. Il flusso può essere utilizzato solo dai frame della scheda specificata la cui origine di sicurezza corrisponde all'origine della scheda di controllo. L'origine della scheda deve essere un'origine sicura, ad esempio HTTPS. -
targetTabId
numero facoltativo
ID scheda facoltativo della scheda che verrà acquisita. Se non specificato, verrà selezionata la scheda attiva corrente. Solo le schede per le quali all'estensione è stata concessa l'autorizzazione
activeTab
possono essere utilizzate come scheda di destinazione.
MediaStreamConstraint
Proprietà
-
obbligatorio
oggetto
-
facoltativo
oggetto facoltativo
TabCaptureState
Enum
"in attesa"
"attivo"
"interrotto"
"errore"
Metodi
capture()
chrome.tabCapture.capture(
options: CaptureOptions,
callback: function,
)
Acquisisce l'area visibile della scheda attualmente attiva. L'acquisizione può essere avviata nella scheda attualmente attiva dopo aver richiamato l'estensione, in modo simile al funzionamento di activeTab. L'acquisizione viene mantenuta durante le navigazioni nelle pagine all'interno della scheda e si interrompe quando la scheda viene chiusa o lo stream multimediale viene chiuso dall'estensione.
Parametri
-
opzioni
Configura lo stream multimediale restituito.
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(stream: LocalMediaStream) => void
-
flusso
LocalMediaStream
-
getCapturedTabs()
chrome.tabCapture.getCapturedTabs(
callback?: function,
)
Restituisce un elenco di schede che hanno richiesto l'acquisizione o che sono in fase di acquisizione, ad esempio stato != arrestato e stato != errore. In questo modo le estensioni possono informare l'utente dell'esistenza di un'acquisizione di schede che potrebbe impedire il completamento dell'acquisizione di una nuova scheda (o per impedire richieste ridondanti per la stessa scheda).
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: CaptureInfo[]) => void
-
risultato
-
Resi
-
Promise<CaptureInfo[]>
Chrome 116 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getMediaStreamId()
chrome.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
)
Crea un ID stream per acquisire la scheda di destinazione. Simile al metodo chrome.tab Capture.capture(), ma restituisce un ID stream multimediale, invece di uno stream multimediale, alla scheda consumer.
Parametri
-
opzioni
GetMediaStreamOptions facoltativo
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(streamId: string) => void
-
streamId
stringa
-
Resi
-
Promise<string>
Chrome 116 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
Eventi
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
Evento attivato quando lo stato di acquisizione di una scheda cambia. In questo modo gli autori delle estensioni possono tenere traccia dello stato di acquisizione delle schede per mantenere sincronizzati gli elementi dell'interfaccia utente, come le azioni sulle pagine.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(info: CaptureInfo) => void
-
informazioni
-