chrome.tabCapture

refresh date: 2026-09-25 robots: noindex

Açıklama

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

İzinler

tabCapture

Genel Bakış

chrome.tabCapture API, geçerli sekmenin video ve sesini içeren bir MediaStream'e erişmenize olanak tanır. Yalnızca kullanıcı bir uzantıyı çağırdıktan sonra (ör. uzantının işlem düğmesini tıklayarak) çağrılabilir. Bu, activeTab izninin davranışına benzer.

Sistem sesi korunuyor

Bir sekme için MediaStream alındığında, o sekmedeki ses artık kullanıcıya oynatılmaz. Bu, suppressLocalAudioPlayback işaretinin doğru olarak ayarlandığı 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 sekmenin MediaStream sesini varsayılan hedefe bağlar.

Akış kimlikleri

chrome.tabCapture.getMediaStreamId çağrıldığında bir akış kimliği döndürülür. Daha sonra kimlikten bir MediaStream'e 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, belirtilen sekmede aynı güvenlik kaynağına sahip herhangi bir çerçevedeki getUserMedia() çağrısı tarafından kullanılabilir.
  • Bu belirtilmediğinde, Chrome 116'dan itibaren kimlik, arayanla aynı oluşturma işleminde aynı güvenlik kaynağına sahip herhangi bir çerçevede kullanılabilir. Bu, hizmet çalışanında elde edilen bir akış kimliğinin ekran dışı dokümanda kullanılabileceği anlamına gelir.

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

Daha fazla bilgi

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

Türler

CaptureInfo

Özellikler

  • tam ekran

    boole

    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

    number isteğe bağlı

    Akışı kullanmak için daha sonra getUserMedia() yöntemini çağıracak sekmenin isteğe bağlı sekme kimliği. Belirtilmezse sonuç akışı yalnızca çağrı uzantısı tarafından kullanılabilir. Akış, yalnızca güvenlik kaynağı tüketici sekmesinin kaynağıyla eşleşen belirli sekmedeki kareler tarafından kullanılabilir. Sekmenin kaynağı, HTTPS gibi güvenli bir kaynak olmalıdır.

  • targetTabId

    number isteğe bağlı

    Ekran görüntüsü alınacak sekmenin isteğe bağlı sekme kimliği. Belirtilmezse mevcut 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ı nesne

TabCaptureState

Enum

"pending"

"etkin"

"durduruldu"

"error"

Yöntemler

capture()

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

Şu anda etkin olan sekmenin görünür alanını yakalar. Yakalama işlemi, activeTab'in çalışma şekline benzer şekilde, yalnızca uzantı çağrıldıktan sonra etkin olan sekmede başlatılabilir. Yakalama işlemi, sekme içindeki sayfa gezinmeleri boyunca devam eder ve sekme kapatıldığında veya medya akışı uzantı tarafından kapatıldığında durur.

Parametreler

  • seçenekler

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

  • callback

    işlev

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

    (stream: LocalMediaStream) => void

    • canlı oynatma

      LocalMediaStream

getCapturedTabs()

Taahhüt
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)
: Promise<CaptureInfo[]>

Yakalama isteğinde bulunan veya yakalanmakta olan sekmelerin listesini döndürür (ör. durum != durduruldu ve durum != hata). Bu sayede uzantılar, kullanıcıya yeni bir sekme yakalama işleminin başarılı olmasını engelleyecek mevcut bir sekme yakalama işlemi olduğunu bildirebilir (veya aynı sekme için gereksiz istekleri önleyebilir).

Parametreler

  • callback

    function isteğe bağlı

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

    (result: CaptureInfo[]) => void

İadeler

  • Promise<CaptureInfo[]>

    Chrome 116+

    Yakalanan sekmeler için CaptureInfo[] ile çözümlenen bir Promise döndürür.

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

getMediaStreamId()

Promise Chrome 71+
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
  callback?: function,
)
: Promise<string>

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

Parametreler

  • seçenekler

    GetMediaStreamOptions isteğe bağlı

  • callback

    function isteğe bağlı

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

    (streamId: string) => void

    • streamId

      dize

İadeler

  • Promise<string>

    Chrome 116+

    Sonuçla çözümlenen bir Promise döndürür. İşlem başarılı olursa sonuç, hedef sekmeye karşılık gelen bir medya akışı oluşturmak için getUserMedia() API'sine iletilebilecek opak bir dizedir. Oluşturulan streamId yalnızca bir kez kullanılabilir ve kullanılmazsa birkaç saniye sonra geçerliliğini yitirir.

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

Etkinlikler

onStatusChanged

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

Bir sekmenin yakalama durumu değiştiğinde tetiklenen etkinlik. Bu sayede uzantı yazarları, sayfa işlemleri gibi kullanıcı arayüzü öğelerini senkronize etmek için sekmelerin yakalama durumunu takip edebilir.

Parametreler

  • callback

    işlev

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

    (info: CaptureInfo) => void