MediaStreamTrack - 表示流中的单个媒体轨道

MediaStreamTrack 接口表示流中的单个媒体轨道;通常,它们是音频或视频轨道,但也可能存在其他轨道类型。

属性

除了下面列出的属性之外, MediaStreamTrack 还具有可约束属性,可以使用 applyConstraints() 进行设置,并使用 getConstraints()getSettings() 进行访问。请参阅功能,约束和设置以了解如何正确使用可约束属性。如果不正确将导致您的代码不可靠。

MediaStreamTrack.contentHint

Web 应用程序可以使用的字符串,用于提供有关轨道包含的内容类型的提示,以指导 API 使用者应如何处理该内容。

MediaStreamTrack.enabled

一个布尔值,如果启用了轨道,其值为 true,允许渲染媒体源流;如果禁用,则为 false,即不渲染媒体源流,而是静音和黑屏。如果已断开轨道,则可以更改此值,但不会产生任何效果。

注意: 您可以通过将 enabled 设置为 false 来实现标准的 “静音” 功能。 muted 属性指的是由于技术问题而没有媒体的情况。

MediaStreamTrack.id 只读

返回一个 DOMString,包含轨道唯一标识符(GUID);它是由浏览器生成的。

MediaStreamTrack.isolated 只读

返回一个布尔值,如果轨道是隔离的,则该值为 true;也就是说,拥有 true 的文档无法访问该轨道。如果设置了 peerIdentity 属性,或者该轨道来自跨源源,则会出现这种情况。

MediaStreamTrack.kind 只读

返回一个 DOMString,如果轨道是音频轨道,则返回 "audio",如果是视频轨道,则返回 "video"。如果轨道与其源关联,则类型不会改变了。

MediaStreamTrack.label 只读

返回一个 DOMString,其中包含用户代理分配的标签,用于标识轨道源,如"internal microphone"。只要没有连接源,字符串可以留空并且为空。当轨道与其源关联时,标签不会改变了。

MediaStreamTrack.muted 只读

返回一个布尔值,指示由于技术问题,轨道是否无法提供媒体数据。

注意: 您可以通过将 enabled 设置为 false 来实现标准的 “静音” 功能,并通过再次设置为 true 来取消静音。

MediaStreamTrack.readonly 只读

返回一个 Boolean,如果轨道是只读的(例如视频文件源或无法修改设置的摄像机),则为 true,否则返回 false

MediaStreamTrack.readyState 只读

返回一个枚举值,给出轨道的状态。它将是以下值之一:

  • "live" 表示输入已连接并尽最大努力提供实时数据。在这种情况下,可以使用 enabled 属性打开或关闭数据输出。
  • "ended"表示输入没有提供更多数据,并且永远不会提供新数据。

MediaStreamTrack.remote 只读

返回一个 Boolean,如果轨道是 RTCPeerConnection 来源的,则返回值为 true,否则返回 false

方法

MediaStreamTrack.applyConstraints()

允许应用程序为 MediaStreamTrack 的任何数量的可用可约束属性指定可接受值的理想值和/或范围。

MediaStreamTrack.clone()

返回 MediaStreamTrack 的副本。

MediaStreamTrack.getCapabilities()

返回可用于 MediaStreamTrack 的可约束属性列表。

MediaStreamTrack.getConstraints()

返回一个 MediaTrackConstraints 对象,包含当前为轨道设置的约束;返回值使用 applyConstraints() 匹配最后设置的约束。

MediaStreamTrack.getSettings()

返回一个 MediaTrackSettings 对象,其中包含每个 MediaStreamTrack 可约束属性的当前值。

MediaStreamTrack.stop()

停止播放与轨道相关的源,源和轨道都取消关联。轨道状态设置为 ended

事件

使用 addEventListener() 或通过为此接口的 oneventname 属性分配事件监听器来监听这些事件:

ended

在播放轨道结束时触发(当值 readyState 变为 ended 时)。
也可以使用 ended 事件处理程序属性。

mute

muted 属性的值更改为 true 时,由 MediaStreamTrack 触发,表示该轨道暂时无法提供数据(例如网络正在经历服务故障)。
也可以通过 onmute 事件处理程序属性处理。

isolationchange

每当 isolated 属性的值因文档获取或失去访问轨道的权限而发生更改时触发。也可以通过 onisolationchange事件处理程序属性处理。

overconstrained

当为轨道指定的约束导致轨道不兼容并因此不使用时触发。
也可以通过 onoverconstrained 事件处理程序属性处理。

unmute

当数据再次可用时,结束 muted 状态时触发。
也可以通过 muted 事件处理程序属性处理。

废弃的事件

started

当轨道退出 new readyState 时发送。
也可以通过 onstarted 事件处理程序属性处理。

规范

规范 状态 备注
Media Capture and Streams
MediaStreamTrack 的定义
编者的草案 初始定义
WebRTC 1.0: Real-time Communication Between Browsers
Isolated tracks 的定义
工作草案 隔离轨道支持的附加属性

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持 支持22 不支持 支持 支持
enabled 支持1224 不支持 支持 未知
id 支持12 支持 不支持 支持 未知
kind 支持12 支持 不支持 支持 未知
label 支持12 支持 不支持 支持 未知
muted 支持1259 不支持 支持 未知
readyState 支持1250 不支持 支持 未知
remote48 — 5912 支持 不支持35 — 46 未知
onmute 支持1259 不支持 支持 未知
onunmute 支持1259 不支持 支持 未知
onoverconstrained 支持12 支持 不支持 支持 未知
onended 支持1250 不支持 支持 未知
applyConstraints631250 未知46 未知
clone451248 未知32 未知
getCapabilities6612 不支持 未知53 未知
getConstraints531250 未知 支持 未知
getSettings611250 未知48 未知
stop611234 不支持45 未知
contentHint60 未知 未知 未知47 未知
getSources 支持 — 56 未知 不支持 未知 支持 — 43 未知
readonly 未知12 未知 未知 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 支持 支持22 未知 支持 未知
enabled 支持 支持 支持24 未知 支持 未知
id 支持 支持 支持 未知 未知 支持 未知
kind 支持 支持 支持 未知 未知 支持 未知
label 支持 支持 支持 未知 未知 支持 未知
muted 支持 支持 支持59 未知 未知 未知
readyState 支持 支持 支持50 未知 未知 未知
remote48 — 5948 — 59 支持 支持 未知35 — 46 未知
onmute 支持 支持 支持59 未知 支持 未知
onunmute 支持 支持 支持59 未知 支持 未知
onoverconstrained 支持 支持 支持 未知 未知 未知 未知
onended 支持 支持 未知50 未知 支持 未知
applyConstraints6363 未知50 未知46 未知
clone4545 未知 未知 未知32 未知
getCapabilities6666 未知 不支持 未知53 未知
getConstraints5352 未知50 未知 支持 不支持
getSettings6161 未知50 未知4811
stop6161 支持34 未知45 未知
contentHint6060 未知 未知 未知47 未知
getSources 支持 — 5656 未知 未知 未知 支持 — 43 未知
readonly 未知 未知 未知 未知 未知 未知 未知

相关链接