Açıklama
Sekme medya akışlarıyla etkileşimde bulunmak için chrome.tabCapture
API'sini kullanın.
İzinler
tabCapture
Genel Bakış
chrome.tabCapture API bir video ve dosya içeren MediaStream'e erişmenizi sağlar mevcut sekmenin sesini tıklayın. Yalnızca kullanıcı bir uzantıyı çağırdıktan sonra (örneğin, Uzantının işlem düğmesini tıklayarak. Bu, eskiden olduğu gibi activeTab izni.
Sistem sesi korunuyor
Bir sekme için MediaStream elde edildiğinde, o sekmedeki ses artık çalınmaz
kullanıcıya gösterir. Bu, aşağıdaki durumlardaki getDisplayMedia()
işlevinin davranışına benzer:
suppressLocalAudioPlayback
işareti doğru değerine ayarlanır.
Kullanıcıya ses çalmaya devam etmek için şunu 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ılana bağlar
seçeceğiz.
Akış kimlikleri
chrome.tabCapture.getMediaStreamId çağrısı yapıldığında bir akış kimliği döndürülür. Daha sonraya kimlikten bir MediaStream'e erişmek için şunu 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ısından sonra
döndürülen akış kimliği kullanılabilir:
consumerTabId
belirtilirse kimlik,getUserMedia()
aynı güvenlik kaynağına sahip sekmesini seçin.- Bu belirtilmediğinde, Chrome 116'dan itibaren kimlik, çağrı yapanla aynı oluşturma işlemine sahip aynı güvenlik kaynağı. Bu, edinilen akış kimliğinin ekran dışı bir dokümanda kullanılabilir.
Chrome 116'dan önce, consumerTabId
belirtilmediğinde akış kimliği her ikisiyle de kısıtlanmıştı.
arayanın güvenlik kaynağı, oluşturma işlemi ve oluşturma çerçevesi.
Daha fazla bilgi
chrome.tabCapture
API'nin nasıl kullanılacağı hakkında daha fazla bilgi için bkz.
Ses kaydı ve ekran görüntüsü. Bu görselde,
tabCapture
ve ilgili API'ler sayesinde bir dizi yaygın kullanım alanına çözüm sunar.
Türler
CaptureInfo
Özellikler
-
tam ekran
boolean
Yakalanan sekmedeki bir öğenin tam ekran modunda olup olmadığı.
-
durum
Sekmenin yeni yakalama durumu.
-
tabId
sayı
Durumu değişen sekmenin kimliği.
CaptureOptions
Özellikler
-
Ses
boole isteğe bağlı
-
audioConstraints
MediaStreamConstraint isteğe bağlı
-
video
boole isteğe bağlı
-
videoConstraints
MediaStreamConstraint isteğe bağlı
GetMediaStreamOptions
Özellikler
-
consumerTabId
sayı isteğe bağlı
Daha sonra akışı kullanmak için
getUserMedia()
yöntemini çağıracak olan sekmenin isteğe bağlı sekme kimliği. Belirtilmezse sonuçta ortaya çıkan akış yalnızca telefon uzantısı tarafından kullanılabilir. Akış yalnızca ilgili sekmede bulunan ve güvenlik kaynağı konsol sekmenin kaynağıyla eşleşen çerçeveler tarafından kullanılabilir. Sekmenin kaynağı güvenli bir kaynak olmalıdır.Ör. HTTPS'ye dokunun. -
targetTabId
sayı isteğe bağlı
Yakalanacak sekmenin isteğe bağlı sekme kimliği. Belirtilmezse mevcut etkin sekme seçilir. Yalnızca uzantıya
activeTab
izninin verildiği sekmeler hedef sekme olarak kullanılabilir.
MediaStreamConstraint
Özellikler
-
zorunlu
nesne
-
isteğe bağlı
nesne isteğe bağlı
TabCaptureState
Enum
"beklemede"
"active"
"durduruldu"
"error"
Yöntemler
capture()
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ılandıktan sonra o anda etkin olan sekmede başlatılabilir. Yakalama, sekmedeki sayfada gezinirken korunur 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.
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(stream: LocalMediaStream) => void
-
akış
LocalMediaStream
-
getCapturedTabs()
chrome.tabCapture.getCapturedTabs(
callback?: function,
)
Yakalama isteğinde bulunan veya yakalanmakta olan sekmelerin bir listesini döndürür (ör. durum != durduruldu ve durum != hata). Böylece uzantılar, yeni bir sekme yakalamanın başarılı olmasını (veya aynı sekme için gereksiz istekleri önleyecek) mevcut bir sekme yakalaması olduğunu kullanıcıya bildirebilir.
Parametreler
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: CaptureInfo[]) => void
-
sonuç
-
İadeler
-
Promise<CaptureInfo[]>
Chrome 116 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
getMediaStreamId()
chrome.tabCapture.getMediaStreamId(
options?: GetMediaStreamOptions,
callback?: function,
)
Hedef sekmeyi yakalamak için akış kimliği oluşturur. chrome.tabCapture.capture() yöntemine benzer, ancak tüketici sekmesine medya akışı yerine bir medya akışı kimliği döndürür.
Parametreler
-
seçenekler
GetMediaStreamOptions isteğe bağlı
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(streamId: string) => void
-
streamId
dize
-
İadeler
-
Promise<dize>
Chrome 116 ve sonraki sürümler 'nı inceleyin.Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.
Etkinlikler
onStatusChanged
chrome.tabCapture.onStatusChanged.addListener(
callback: function,
)
Bir sekmenin yakalama durumu değiştiğinde etkinlik tetiklenir. Bu sayede uzantı yazarları, sayfa işlemleri gibi kullanıcı arayüzü öğelerini senkronize halde tutmak için sekmelerin yakalama durumunu izleyebilir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(info: CaptureInfo) => void
-
bilgi
-