browser.tabCapture

Descrição

Use a API chrome.tabCapture para interagir com streams de mídia de guias.

Permissões

tabCapture

Conceitos 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 consumerTabId for especificado, o ID poderá ser usado por uma chamada getUserMedia() 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.

  • O novo status de captura da guia.

  • tabId

    número

    O ID da guia cujo status foi alterado.

CaptureOptions

Propriedades