browser.tabCapture

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

tabCapture

Khá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ọi getUserMedia() 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