Descrição
Use a API chrome.tabCapture para interagir com streams de mídia de guias.
Permissões
tabCaptureConceitos e uso
A API browser.tabCapture permite acessar um MediaStream que contém vídeo e
áudio da guia atual. Ele só pode ser chamado depois que o usuário invoca uma extensão, por exemplo,
clicando no botão de ação da extensão. Isso é semelhante ao comportamento da permissão
"activeTab".
Preservar áudio do sistema
Quando um MediaStream é obtido para uma guia, o áudio dela não é mais reproduzido para o usuário. Isso é semelhante ao comportamento da função getDisplayMedia() quando a flag suppressLocalAudioPlayback é definida como "true".
Para continuar reproduzindo áudio para o usuário, use o seguinte:
const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);
Isso cria um novo AudioContext e conecta o áudio do MediaStream da guia ao destino
padrão.
IDs de stream
Chamar browser.tabCapture.getMediaStreamId() vai retornar um ID de stream. Para acessar um MediaStream posteriormente usando o ID, use o seguinte:
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
Restrições de uso
Depois de chamar getMediaStreamId(), há restrições sobre onde o
ID do fluxo retornado pode ser usado:
- Se
consumerTabIdfor especificado, o ID poderá ser usado por uma chamadagetUserMedia()em qualquer frame na determinada guia que tenha a mesma origem de segurança. - Quando isso não é especificado, a partir do Chrome 116, o ID pode ser usado em qualquer frame com a mesma origem de segurança no mesmo processo de renderização do caller. Isso significa que um ID de fluxo obtido em um service worker pode ser usado em um documento offscreen.
Antes do Chrome 116, quando um consumerTabId não era especificado, o ID do fluxo era restrito à origem de segurança, ao processo de renderização e ao frame de renderização do autor da chamada.
Saiba mais
Para saber mais sobre como usar a API browser.tabCapture, consulte
Gravação de áudio e captura de tela. Isso demonstra como usar a
tabCapture e APIs relacionadas para resolver vários casos de uso comuns.
Tipos
CaptureInfo
Propriedades
-
tela cheia
booleano
Indica se um elemento na guia capturada está no modo de tela cheia.
-
status
O novo status de captura da guia.
-
tabId
número
O ID da guia cujo status foi alterado.
CaptureOptions
Propriedades
-
áudio
booleano opcional
-
audioConstraints
MediaStreamConstraint opcional
-
vídeo
booleano opcional
-