MediaStreamTrackGenerator
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
注意: 建议使用 VideoTrackGenerator。
Insertable Streams for MediaStreamTrack API 中的 MediaStreamTrackGenerator 接口创建一个 WritableStream,它充当 MediaStreamTrack 的源。该对象消耗媒体帧流作为输入,可以是音频帧或视频帧。
构造函数
MediaStreamTrackGenerator()实验性 非标准-
创建一个新的
MediaStreamTrackGenerator对象,该对象接受VideoFrame或AudioData对象。
实例属性
此接口还继承了 MediaStreamTrack 的属性。
MediaStreamTrackGenerator.writable实验性 非标准-
一个
WritableStream。
实例方法
此接口不实现任何特定方法,但继承了 MediaStreamTrack 的方法。
示例
以下示例来自文章 Insertable streams for 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);
另见
规范
此特性似乎未在任何规范中定义。浏览器兼容性
加载中…