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 的定义 |
工作草案 | 隔离轨道支持的附加属性 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 22 | 不支持 | 支持 | 支持 |
enabled | 支持 | 12 | 24 | 不支持 | 支持 | 未知 |
id | 支持 | 12 | 支持 | 不支持 | 支持 | 未知 |
kind | 支持 | 12 | 支持 | 不支持 | 支持 | 未知 |
label | 支持 | 12 | 支持 | 不支持 | 支持 | 未知 |
muted | 支持 | 12 | 59 | 不支持 | 支持 | 未知 |
readyState | 支持 | 12 | 50 | 不支持 | 支持 | 未知 |
remote | 48 — 59 | 12 | 支持 | 不支持 | 35 — 46 | 未知 |
onmute | 支持 | 12 | 59 | 不支持 | 支持 | 未知 |
onunmute | 支持 | 12 | 59 | 不支持 | 支持 | 未知 |
onoverconstrained | 支持 | 12 | 支持 | 不支持 | 支持 | 未知 |
onended | 支持 | 12 | 50 | 不支持 | 支持 | 未知 |
applyConstraints | 63 | 12 | 50 | 未知 | 46 | 未知 |
clone | 45 | 12 | 48 | 未知 | 32 | 未知 |
getCapabilities | 66 | 12 | 不支持 | 未知 | 53 | 未知 |
getConstraints | 53 | 12 | 50 | 未知 | 支持 | 未知 |
getSettings | 61 | 12 | 50 | 未知 | 48 | 未知 |
stop | 61 | 12 | 34 | 不支持 | 45 | 未知 |
contentHint | 60 | 未知 | 未知 | 未知 | 47 | 未知 |
getSources | 支持 — 56 | 未知 | 不支持 | 未知 | 支持 — 43 | 未知 |
readonly | 未知 | 12 | 未知 | 未知 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 22 | 未知 | 支持 | 未知 |
enabled | 支持 | 支持 | 支持 | 24 | 未知 | 支持 | 未知 |
id | 支持 | 支持 | 支持 | 未知 | 未知 | 支持 | 未知 |
kind | 支持 | 支持 | 支持 | 未知 | 未知 | 支持 | 未知 |
label | 支持 | 支持 | 支持 | 未知 | 未知 | 支持 | 未知 |
muted | 支持 | 支持 | 支持 | 59 | 未知 | 未知 | 未知 |
readyState | 支持 | 支持 | 支持 | 50 | 未知 | 未知 | 未知 |
remote | 48 — 59 | 48 — 59 | 支持 | 支持 | 未知 | 35 — 46 | 未知 |
onmute | 支持 | 支持 | 支持 | 59 | 未知 | 支持 | 未知 |
onunmute | 支持 | 支持 | 支持 | 59 | 未知 | 支持 | 未知 |
onoverconstrained | 支持 | 支持 | 支持 | 未知 | 未知 | 未知 | 未知 |
onended | 支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
applyConstraints | 63 | 63 | 未知 | 50 | 未知 | 46 | 未知 |
clone | 45 | 45 | 未知 | 未知 | 未知 | 32 | 未知 |
getCapabilities | 66 | 66 | 未知 | 不支持 | 未知 | 53 | 未知 |
getConstraints | 53 | 52 | 未知 | 50 | 未知 | 支持 | 不支持 |
getSettings | 61 | 61 | 未知 | 50 | 未知 | 48 | 11 |
stop | 61 | 61 | 支持 | 34 | 未知 | 45 | 未知 |
contentHint | 60 | 60 | 未知 | 未知 | 未知 | 47 | 未知 |
getSources | 支持 — 56 | 56 | 未知 | 未知 | 未知 | 支持 — 43 | 未知 |
readonly | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |