MediaStreamTrackGenerator

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

Note: Hãy cân nhắc sử dụng VideoTrackGenerator thay thế.

Giao diện MediaStreamTrackGenerator của Insertable Streams for MediaStreamTrack API tạo một WritableStream hoạt động như nguồn MediaStreamTrack. Đối tượng tiêu thụ một luồng các khung phương tiện làm đầu vào, có thể là khung âm thanh hoặc video.

Hàm khởi tạo

MediaStreamTrackGenerator() Experimental Non-standard

Tạo một đối tượng MediaStreamTrackGenerator mới, chấp nhận các đối tượng VideoFrame hoặc AudioData.

Thuộc tính phiên bản

Giao diện này cũng kế thừa các thuộc tính từ MediaStreamTrack.

MediaStreamTrackGenerator.writable Experimental Non-standard

Một WritableStream.

Phương thức phiên bản

Giao diện này không triển khai bất kỳ phương thức cụ thể nào, nhưng kế thừa các phương thức từ MediaStreamTrack.

Ví dụ

Ví dụ sau lấy từ bài viết Insertable streams for MediaStreamTrack, và trình bày ứng dụng quét mã vạch, xử lý mã vạch và tô sáng chúng trước khi ghi các khung đã biến đổi vào writable stream của MediaStreamTrackGenerator.writable.

js
const stream = await getUserMedia({ video: true });
const videoTrack = stream.getVideoTracks()[0];

const trackProcessor = new MediaStreamTrackProcessor({ track: videoTrack });
const trackGenerator = new MediaStreamTrackGenerator({ kind: "video" });

const transformer = new TransformStream({
  async transform(videoFrame, controller) {
    const barcodes = await detectBarcodes(videoFrame);
    const newFrame = highlightBarcodes(videoFrame, barcodes);
    videoFrame.close();
    controller.enqueue(newFrame);
  },
});

trackProcessor.readable
  .pipeThrough(transformer)
  .pipeTo(trackGenerator.writable);

Xem thêm

Thông số kỹ thuật

This feature does not appear to be defined in any specification.

Tương thích trình duyệt