MediaStream

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

MediaStream 接口是 媒体捕获和流 API 的一部分,它代表一个媒体内容流。一个流由几个轨道组成,例如视频轨道或音频轨道。每个轨道都指定为 MediaStreamTrack 的实例。

您可以通过使用构造函数,或者调用 MediaDevices.getUserMedia()MediaDevices.getDisplayMedia()HTMLCanvasElement.captureStream()HTMLMediaElement.captureStream() 等函数来获取 MediaStream 对象。

EventTarget MediaStream

构造函数

MediaStream()

创建并返回一个新的 MediaStream 对象。您可以创建一个空流、一个基于现有流的流,或者一个包含指定轨道列表(指定为 MediaStreamTrack 对象数组)的流。

实例属性

此接口继承了其父接口 EventTarget 的属性。

MediaStream.active 只读

一个布尔值,如果 MediaStream 处于活动状态,则返回 true,否则返回 false

MediaStream.id 只读

一个包含该对象 36 个字符的通用唯一标识符(UUID)的字符串。

实例方法

此接口继承了其父接口 EventTarget 的方法。

MediaStream.addTrack()

存储作为参数传入的 MediaStreamTrack 的副本。如果该轨道已添加到 MediaStream 对象,则什么也不做。

MediaStream.clone()

返回 MediaStream 对象的克隆。但是,克隆将具有唯一的 id 值。

MediaStream.getAudioTracks()

返回存储在 MediaStream 对象中且其 kind 属性设置为 audioMediaStreamTrack 对象列表。顺序不确定,并且不仅可能因浏览器而异,也可能因每次调用而异。

MediaStream.getTrackById()

返回 ID 与参数 trackId 对应的轨道。如果未提供参数,或者不存在具有该 ID 的轨道,则返回 null。如果有多个轨道具有相同的 ID,则返回第一个。

MediaStream.getTracks()

返回存储在 MediaStream 对象中的所有 MediaStreamTrack 对象列表,而不管 kind 属性的值。顺序不确定,并且不仅可能因浏览器而异,也可能因每次调用而异。

MediaStream.getVideoTracks()

返回存储在 MediaStream 对象中且其 kind 属性设置为 "video"MediaStreamTrack 对象列表。顺序不确定,并且不仅可能因浏览器而异,也可能因每次调用而异。

MediaStream.removeTrack()

移除作为参数传入的 MediaStreamTrack。如果该轨道不是 MediaStream 对象的一部分,则什么也不做。

事件

addtrack

添加了新的 MediaStreamTrack 对象时触发。

removetrack

删除了 MediaStreamTrack 对象时触发。

active 非标准

MediaStream 激活时触发。

inactive 非标准

MediaStream 失效时触发。

规范

规范
媒体捕获和流
# mediastream

浏览器兼容性

另见