MediaTrackSettings - 用于返回为每个 MediaStreamTrack 设置的当前值的字典
MediaTrackSettings
字典用于返回为每个 MediaStreamTrack
设置所配置的当前值。这些值将尽可能接近先前使用 MediaTrackConstraints
对象和使用 applyConstraints()
设置的任何约束,并且将遵守其约束未更改,或无法匹配其自定义约束的任何属性的默认约束。
要了解有关约束如何工作的更多信息,请参阅功能,约束和设置。
属性
该对象将包含以下一些或所有属性,因为有的是是浏览器不是支持的,有的是在浏览器上下文中不可用的。例如,因为 RTP 在协商 WebRTC 连接期间未提供其中一些值,与 RTCPeerConnection
关联的轨道将不包含某些值,例如 facingMode
或 groupId
。
所有媒体轨道的属性
deviceId
一个 DOMString
,表示 deviceId
属性的当前值。设备 ID 是一个当前源唯一字符串标识的轨迹的源;它通常是一个 GUID。这个值特定于轨道数据的来源,不可用于设置约束;但是,当调用 MediaDevices.getUserMedia()
时,它可以用于选择媒体。
groupId
一个 DOMString
表示 groupId
属性的当前值。分组 ID 是一个浏览会话唯一字符串识别轨道的源组。两个设备(例如 deviceId
不同),如果它们来自相同的物理设备,会被认为是相同的分组。例如,内置于手机的扬声器和麦克风音频输入和输出设备将共享同一组 ID,因为他们是同一个物理设备的一部分。但是,耳机上的麦克风会有不同的 ID。这个值特定于轨道数据的来源,不可用于设置约束;但是,当调用 MediaDevices.getUserMedia()
时,它可以用于选择媒体。
音频轨道的属性
autoGainControl
一个布尔,表示 autoGainControl
属性的当前的值,如果启用了自动增益控制,其是 true
,否则为 false
。
channelCount
一个长整型,表示 channelCount
属性当前的值,指定当前轨道上音频通道的数目(因而指示了音频取样在各存在多少音频帧)。单声道为 1,立体声为 2,以此类推。
echoCancellation
一个布尔值,表示 echoCancellation
属性,如果启用回声消除则为 true
,否则为 false
。
latency
一个双精度浮点值,表示 latency
属性当前的值,指定所述音频延迟时间,单位为秒。延迟是指音频使用过程中,从处理音频开始,到下次停止之间可用的数据之间,所经过的时间量。这个值是目标值;由于各种原因,实际延迟可能在一定程度上有所不同。
noiseSuppression
一个布尔值,表示 noiseSupression
属性当前的值,如果启用了噪声抑制是 true
,否则为 false
。
sampleRate
一个长整数值,表示 sampleRate
属性的当前值,指定在每个音频数据每秒的采样率。例如标准 CD 质量的音频,具有每秒 41000 个采样的采样速率。
sampleSize
一个长整数值,表示 sampleSize
属性的当前值,以比特为单位,指示每个音频样本的线性大小。例如 CD 质量的音频是 16 位的,则这个值是在这种情况下是 16。
volume
一个双精度浮点值,表示 volume
属性当前的值,指定音轨的音量电平。该值在是 0.0(静音)至 1.0(最大支持音量)之间。
视频轨道的属性
aspectRatio
一个双精度浮点值,表示 aspectRatio
属性当前的值,指定了精确到 10 位小数。这是图像的在其高度以像素为单位划分像素的宽度。常见值包括 1.3333333333(为经典的电视 4:3 “标准” 的纵横比,也用在平板电脑,如苹果 iPad),1.7777777778(为 16:9 的高清晰度宽屏幕宽高比)和 1.6(为 16:10 宽高比的宽屏计算机和平板电脑)。
facingMode
一个 DOMString
,指示 facingMode
属性的当前值,指定摄像机面对的方向。该值是以下其中一个:
"user"
面向用户的相机(通常被称为 “自拍相机”),用于自拍和视频呼叫。
"environment"
背向用户的照相机(相对于用户正在观看的屏幕)。这通常是设备上的高品质摄像头,用于一般拍摄。
"left"
面向用户左侧环境的相机。
"right"
面向用户右侧环境的相机。
frameRate
一个双精度浮点值,表示 frameRate
属性的当前值,指定每秒轨道包括视频的多少帧。如果由于任何原因无法确定该值,则该值将匹配用户代理正在运行的设备的垂直同步速率。
height
一个长整数值,表示 height
属性的当前值,指定轨道的视频数据的像素高度。
width
一个长整数值,表示 width
属性的当前值,指定轨道的视频数据的像素宽度。
resizeMode
一个 DOMString
,表示 resizeMode
属性的当前值,指定由所述用户代理使用的模式来导出轨道的分辨率。该值是以下其中一个:
"none"
轨道的分辨率由相机、驱动程序或操作系统提供。
"crop-and-scale"
轨道的分辨率可能是用户代理使用从较高的相机分辨率裁剪或缩小比例的结果。
共享屏幕轨道的属性
包含用户屏幕上共享的视频(无论该画面数据是否来自整个屏幕或屏幕的一部分,例如一个窗口或标签)的轨道通常被认为是视频轨道,不同之处在于它们还支持添加的以下设置:
cursor
一个 DOMString
,它指示生成的流中是否包含鼠标指针,以及在什么条件下包含鼠标指针。可能的值有:
always
鼠标总是在 MediaStream
的视频内容中显示,除非鼠标移动内容的区域之外。
motion
如果鼠标在移动,并且在停止移动后的一小段时间内,它总是显示在视频中。
never
鼠标光标永远不会包含在共享视频中。
displaySurface
一个 DOMString
,指定轨道包含的源类型;为以下其中一个值:
application
该流包含由用户选择呈现在一个视频轨道中的应用程序的所有窗口。
browser
该流包含用户选择的单个浏览器选项卡的内容。
monitor
该流的视频轨包含一个或多个用户屏幕的全部内容。
window
该流包含用户选择用于共享的单个窗口。
logicalSurface
一个布尔值,如果为 true
,表示包含在数据流的视频轨道的视频包含背景渲染上下文,而不是用户可见的上下文。 如果视频是从前景(用户可见)的源捕捉的,则为 false
。
规范
规范 | 状态 | 备注 |
---|---|---|
Unknown MediaTrackSettings 的定义 |
Unknown | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 59 | 未知 | 支持 | 未知 | 支持 | 未知 |
aspectRatio | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
autoGainControl | 支持 | 未知 | 55 50 — 55 moz | 未知 | 支持 | 未知 |
channelCount | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
cursor | 71 | 未知 | 不支持 | 不支持 | 支持 | 未知 |
deviceId | 支持 | 未知 | 69 | 未知 | 支持 | 未知 |
displaySurface | 71 | 未知 | 不支持 | 不支持 | 支持 | 未知 |
echoCancellation | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
facingMode | 支持 | 未知 | 69 | 未知 | 支持 | 未知 |
frameRate | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |
groupId | 支持 | 未知 | 69 | 未知 | 支持 | 未知 |
height | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |
latency | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
logicalSurface | 71 | 未知 | 不支持 | 不支持 | 支持 | 未知 |
noiseSuppression | 支持 | 未知 | 55 50 — 55 moz | 未知 | 支持 | 未知 |
resizeMode | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
sampleRate | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
sampleSize | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
volume | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
width | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 59 | 59 | 未知 | 支持 | 未知 | 支持 | 未知 |
aspectRatio | 支持 | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
autoGainControl | 支持 | 支持 | 未知 | 55 50 — 55 moz | 未知 | 支持 | 未知 |
channelCount | 不支持 | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
cursor | 71 | 71 | 未知 | 不支持 | 未知 | 未知 | 未知 |
deviceId | 支持 | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
displaySurface | 71 | 71 | 未知 | 不支持 | 未知 | 未知 | 未知 |
echoCancellation | 支持 | 支持 | 未知 | 50 | 未知 | 支持 | 未知 |
facingMode | 支持 | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
frameRate | 支持 | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |
groupId | 支持 | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
height | 支持 | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |
latency | 不支持 | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
logicalSurface | 71 | 71 | 未知 | 不支持 | 未知 | 未知 | 未知 |
noiseSuppression | 支持 | 支持 | 未知 | 55 50 — 55 moz | 未知 | 支持 | 未知 |
resizeMode | 不支持 | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
sampleRate | 不支持 | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
sampleSize | 支持 | 支持 | 未知 | 不支持 | 未知 | 支持 | 未知 |
volume | 不支持 | 不支持 | 未知 | 不支持 | 未知 | 不支持 | 未知 |
width | 支持 | 支持 | 未知 | 36 | 未知 | 支持 | 未知 |