Mô tả
Dùng API chrome.tabCapture để tương tác với các luồng nội dung nghe nhìn của thẻ.
Quyền
tabCaptureKhái niệm và cách sử dụng
API browser.tabCapture cho phép bạn truy cập vào một MediaStream chứa video và âm thanh của thẻ hiện tại. Bạn chỉ có thể gọi phương thức này sau khi người dùng gọi một tiện ích, chẳng hạn như bằng cách nhấp vào nút hành động của tiện ích. Điều này tương tự như hành vi của quyền "activeTab".
Giữ lại âm thanh hệ thống
Khi một MediaStream được lấy cho một thẻ, âm thanh trong thẻ đó sẽ không còn phát cho người dùng nữa. Điều này tương tự như hành vi của hàm getDisplayMedia() khi cờ suppressLocalAudioPlayback được đặt thành true.
Để tiếp tục phát âm thanh cho người dùng, hãy sử dụng nội dung sau:
const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);
Thao tác này sẽ tạo một AudioContext mới và kết nối âm thanh của MediaStream trên thẻ với đích đến mặc định.
Mã luồng
Việc gọi browser.tabCapture.getMediaStreamId() sẽ trả về một mã nhận dạng luồng. Để truy cập vào MediaStream sau này từ mã nhận dạng, hãy sử dụng mã sau:
navigator.mediaDevices.getUserMedia({
audio: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
video: {
mandatory: {
chromeMediaSource: "tab",
chromeMediaSourceId: id,
},
},
});
Giới hạn mức sử dụng
Sau khi gọi getMediaStreamId(), bạn sẽ bị hạn chế về nơi có thể sử dụng mã nhận dạng luồng được trả về:
- Nếu bạn chỉ định
consumerTabId, thì lệnh gọigetUserMedia()có thể sử dụng mã nhận dạng này trong bất kỳ khung nào trong thẻ đã cho có cùng nguồn gốc bảo mật. - Nếu không được chỉ định, bắt đầu từ Chrome 116, mã nhận dạng có thể được dùng trong mọi khung có cùng nguồn gốc bảo mật trong cùng một quy trình kết xuất với phương thức gọi. Điều này có nghĩa là bạn có thể sử dụng mã nhận dạng luồng nhận được trong một trình chạy dịch vụ trong tài liệu ngoài màn hình.
Trước Chrome 116, khi không chỉ định consumerTabId, mã nhận dạng luồng bị hạn chế đối với cả nguồn gốc bảo mật, quy trình kết xuất và khung kết xuất của phương thức gọi.
Tìm hiểu thêm
Để tìm hiểu thêm về cách sử dụng API browser.tabCapture, hãy xem phần Bản ghi âm và chụp ảnh màn hình. Điều này minh hoạ cách sử dụng tabCapture và các API liên quan để giải quyết một số trường hợp sử dụng phổ biến.
Loại
CaptureInfo
Thuộc tính
-
toàn màn hình
boolean
Liệu một phần tử trong thẻ đang được ghi lại có ở chế độ toàn màn hình hay không.
-
trạng thái
Trạng thái chụp mới của thẻ.
-
tabId
số
Mã nhận dạng của thẻ có trạng thái thay đổi.
CaptureOptions
Thuộc tính
-
âm thanh
boolean không bắt buộc