MediaStreamTrackGenerator

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

非标准: 此功能是非标准的,不在标准化轨道上。请勿在面向 Web 的生产网站上使用它:它不会适用于所有用户。不同实现之间可能存在重大差异,并且行为可能会在将来发生变化。

MediaStreamTrackGenerator 接口是 用于 MediaStreamTrack API 的可插入流 的一部分,它创建了一个 WritableStream,充当 MediaStreamTrack 源。该对象使用媒体帧流作为输入,这些帧可以是音频帧或视频帧。

构造函数

MediaStreamTrackGenerator() 实验性 非标准

创建一个新的 MediaStreamTrackGenerator 对象,它接受 VideoFrameAudioData 对象。

实例属性

此接口还继承了 MediaStreamTrack 的属性。

MediaStreamTrackGenerator.writable 实验性 非标准

一个 WritableStream

实例方法

此接口不实现任何特定方法,但继承了 MediaStreamTrack 的方法。

示例

以下示例来自文章 用于 MediaStreamTrack 的可插入流,它演示了一个条形码扫描仪应用程序,该应用程序会处理条形码并在写入 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);

规范

未找到规范

未找到 api.MediaStreamTrackGenerator 的规范数据。
检查此页面的问题 或向 mdn/browser-compat-data 贡献缺失的 spec_url。还要确保规范包含在 w3c/browser-specs.

浏览器兼容性

BCD 表只在启用 JavaScript 的浏览器中加载。