chrome.tabCapture

Açıklama

Sekme medya akışlarıyla etkileşimde bulunmak için chrome.tabCapture API'yi kullanın.

İzinler

tabCapture

Kavramlar ve kullanım

chrome.tabCapture API, geçerli sekmenin videosunu ve sesini içeren bir MediaStream dosyasına erişmenizi sağlar. Yalnızca, kullanıcı bir uzantıyı çağırdıktan sonra (örneğin, uzantının işlem düğmesini tıklayarak) çağrılabilir. Bu, "activeTab" izninin davranışına benzer.

Sistem sesini koru

Bir sekme için MediaStream edinildiğinde bu sekmedeki ses artık kullanıcıya çalınmaz. Bu, suppressLocalAudioPlayback işareti doğru değerine ayarlandığında getDisplayMedia() işlevinin davranışına benzer.

Kullanıcıya ses çalmaya devam etmek için aşağıdakileri kullanın:

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

Bu işlem, yeni bir AudioContext oluşturur ve sekmedeki MediaStream öğesinin sesini varsayılan hedefe bağlar.

Akış kimlikleri

chrome.tabCapture.getMediaStreamId() çağrısı yapıldığında akış kimliği döndürülür. Daha sonra kimlikten bir MediaStream öğesine erişmek için aşağıdakileri kullanın:

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

Kullanım kısıtlamaları

getMediaStreamId() çağrıldıktan sonra, döndürülen akış kimliğinin kullanılabileceği yerlerle ilgili kısıtlamalar vardır:

  • consumerTabId belirtilirse kimlik, aynı güvenlik kaynağına sahip ilgili sekmedeki herhangi bir çerçevede bir getUserMedia() çağrısı tarafından kullanılabilir.
  • Bu belirtilmediğinde, Chrome 116 sürümünden itibaren kimlik, çağrıyı yapanla aynı oluşturma işleminde aynı güvenlik kaynağına sahip herhangi bir çerçevede kullanılabilir. Bu, Service Worker'dan alınan bir akış kimliğinin ekran dışındaki bir dokümanda kullanılabileceği anlamına gelir.

Chrome 116'dan önce bir consumerTabId belirtilmediğinde akış kimliği, arayanın hem güvenlik kaynağı, oluşturma işlemi hem de oluşturma çerçevesiyle sınırlıydı.

Daha fazla bilgi

chrome.tabCapture API'nin nasıl kullanılacağı hakkında daha fazla bilgi için Ses kaydı ve ekran görüntüsü başlıklı makaleyi inceleyin. Bu görselde, yaygın kullanım alanlarının bir kısmı için tabCapture ve ilgili API'lerin nasıl kullanılacağı gösterilmektedir.

Türler

CaptureInfo

Özellikler

  • tam ekran

    boolean

    Yakalanan sekmedeki bir öğenin tam ekran modunda olup olmadığı.

  • Sekmenin yeni yakalama durumu.

  • tabId

    sayı

    Durumu değişen sekmenin kimliği.

CaptureOptions

Özellikler

GetMediaStreamOptions

Chrome 71 ve sonraki sürümler

Özellikler

  • consumerTabId

    numara isteğe bağlı

    Daha sonra akışı tüketmek için getUserMedia() yöntemini çağıracak olan sekmenin isteğe bağlı sekme kimliği. Belirtilmezse elde edilen akış yalnızca arama uzantısı tarafından kullanılabilir. Akış yalnızca belirtilen sekmedeki güvenlik kaynağı, kullanıcı sekmesinin kaynağıyla eşleşen kareler tarafından kullanılabilir. Sekmenin kaynağı güvenli bir kaynak (ör. HTTPS) olmalıdır.

  • targetTabId

    numara isteğe bağlı

    Yakalanacak sekmenin isteğe bağlı sekme kimliği. Belirtilmezse geçerli etkin sekme seçilir. Yalnızca uzantıya activeTab izni verilen sekmeler hedef sekme olarak kullanılabilir.

MediaStreamConstraint

Özellikler

  • zorunlu

    nesne

  • isteğe bağlı

    isteğe bağlı

TabCaptureState

Enum

"durdurdu"

"error"

Yöntemler

capture()

Yalnızca ön plan
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)

Geçerli olarak etkin olan sekmenin görünür alanını yakalar. Yakalama, activeTab'in çalışma şekline benzer şekilde, yalnızca uzantı çağrıldıktan sonra o anda etkin olan sekmede başlatılabilir. Yakalama, sekme içindeki sayfa gezinmelerinde korunur ve sekme kapatıldığında ya da medya akışı uzantı tarafından kapatıldığında durur.

Parametreler

  • seçenekler

    Döndürülen medya akışını yapılandırır.

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (stream: LocalMediaStream)=>void

    • akış

      LocalMediaStream

getCapturedTabs()

Söz
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)

Yakalanma isteğinde bulunan veya yakalanan sekmelerin listesini döndürür (ör. durum != durduruldu ve durum != hatası). Böylece uzantılar, yeni sekme yakalama işleminin başarılı olmasını (veya aynı sekme için gereksiz istekleri önleyecek) mevcut bir sekme yakalaması bulunduğunu kullanıcıya bildirebilir.

Parametreler

  • geri çağırma

    Functions (isteğe bağlı)

    callback parametresi şu şekilde görünür:

    (result: CaptureInfo[])=>void

İlerlemeler

  • Promise<CaptureInfo[]>

    Chrome 116 ve sonraki sürümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.

getMediaStreamId()

Söz Chrome 71 ve sonraki sürümleri
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
  callback?: function,
)

Hedef sekmeyi yakalamak için bir akış kimliği oluşturur. chrome.tabCapture.capture() yöntemine benzer, ancak tüketici sekmesine bir medya akışı yerine bir medya akışı kimliği döndürür.

Parametreler

  • seçenekler

    GetMediaStreamOptions isteğe bağlı

  • geri çağırma

    Functions (isteğe bağlı)

    callback parametresi şu şekilde görünür:

    (streamId: string)=>void

    • streamId

      dize

İlerlemeler

  • Söz<dize>

    Chrome 116 ve sonraki sürümler

    Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.

Etkinlikler

onStatusChanged

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

Etkinlik, bir sekmenin yakalama durumu değiştiğinde tetiklenir. Bu, uzantı yazarlarının sayfa işlemleri gibi kullanıcı arayüzü öğelerini senkronize tutmak için sekmelerin yakalama durumunu takip etmesine olanak tanır.

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (info: CaptureInfo)=>void