MediaTrackSettings

MediaTrackSettings 字典用于返回 MediaStreamTrack 的每个设置的当前值。这些值将尽可能贴近使用 MediaTrackConstraints 对象描述并使用 applyConstraints() 设置的约束,并且对于任何未更改约束或其自定义约束不匹配的属性,将采用默认约束。

要了解有关约束和设置工作原理的更多信息,请参阅 功能、约束和设置

实例属性

以下一项或多项将包含在该对象中,原因可能是浏览器不支持,也可能是由于上下文不可用。例如,由于 RTP 在 WebRTC 连接的协商过程中不提供其中某些值,因此与 RTCPeerConnection 关联的轨道将不包含某些值,例如 facingModegroupId

所有媒体轨道的实例属性

deviceId

一个字符串,指示 deviceId 属性的当前值。设备 ID 是一个源唯一的字符串,用于标识轨道的来源;这通常是一个 GUID。此值特定于轨道数据的来源,不能用于设置约束;但是,在调用 MediaDevices.getUserMedia() 来最初选择媒体时,可以使用它。

groupId

一个字符串,指示 groupId 属性的当前值。组 ID 是一个浏览器会话唯一的字符串,用于标识轨道的源组。两个设备(由 deviceId 标识)如果来自同一物理设备,则被视为同一组的一部分。例如,手机中内置的扬声器和麦克风的音频输入和输出设备将共享相同的组 ID,因为它们属于同一物理设备。但是,耳机上的麦克风将具有不同的 ID。此值特定于轨道数据的来源,不能用于设置约束;但是,在调用 MediaDevices.getUserMedia() 来最初选择媒体时,可以使用它。

音频轨道的实例属性

autoGainControl

一个布尔值,指示 autoGainControl 属性的当前值,如果启用了自动增益控制,则为 true,否则为 false

channelCount

一个长整数值,指示 channelCount 属性的当前值,指定轨道上存在的音频通道数(因此表明每个音频帧中有多少个音频样本)。对于单声道为 1,立体声为 2,依此类推。

echoCancellation

一个布尔值,指示 echoCancellation 属性的当前值,如果启用了回声消除,则为 true,否则为 false

latency

一个双精度浮点数值,指示 latency 属性的当前值,以秒为单位指定音频延迟。延迟是指从音频处理开始到数据可用于音频利用过程的下一个停止点之间经过的时间。此值为目标值;由于各种原因,实际延迟可能在一定程度上有所不同。

noiseSuppression

一个布尔值,指示 noiseSuppression 属性的当前值:如果启用了降噪,则为 true,否则为 false

restrictOwnAudio

一个布尔值,指示 restrictOwnAudio 属性的当前值:如果浏览器尝试过滤掉屏幕捕获期间源自捕获标签的系统音频,则为 true,否则为 false

sampleRate

一个长整数值,指示 sampleRate 属性的当前值,指定音频数据的每秒采样数。例如,标准的 CD 音质音频的采样率为每秒 41,000 个样本。

sampleSize

一个长整数值,指示 sampleSize 属性的当前值,指定每个音频样本的线性大小(以比特为单位)。例如,CD 音质音频是 16 位,在这种情况下,此值为 16。

suppressLocalAudioPlayback

控制在捕获标签时,标签中正在播放的音频是否会继续通过用户的本地扬声器播放。

volume 已弃用 非标准

一个双精度浮点数值,指示 volume 属性的当前值,指定轨道的音量级别。此值将在 0.0(静音)到 1.0(最大支持音量)之间。

视频轨道的实例属性

aspectRatio

一个双精度浮点数值,指示 aspectRatio 属性的当前值,精确到小数点后 10 位。这是图像的宽度(以像素为单位)除以其高度(以像素为单位)。常见的值包括 1.3333333333(经典电视 4:3“标准”纵横比,也用于 iPad 等平板电脑)、1.7777777778(16:9 高清宽屏纵横比)和 1.6(宽屏计算机和平板电脑常见的 16:10 纵横比)。

facingMode

一个字符串,指示 facingMode 属性的当前值,指定摄像头的朝向。该值将是以下之一:

"user"

面向用户的摄像头(俗称“自拍相机”),用于自拍和视频通话。

"environment"

面向远离用户的摄像头(当用户查看屏幕时)。这通常是设备上质量最高的摄像头,用于一般摄影。

"left"

面向用户左侧环境的摄像头。

面向用户右侧环境的摄像头。

frameRate

一个双精度浮点数值,指示 frameRate 属性的当前值,指定轨道包含的每秒视频帧数。如果由于任何原因无法确定该值,则该值将匹配用户代理运行设备的人眼同步率。

height

一个长整数值,指示 height 属性的当前值,指定轨道视频数据的高度(以像素为单位)。

width

一个长整数值,指示 width 属性的当前值,指定轨道视频数据的宽度(以像素为单位)。

resizeMode

一个字符串,指示 resizeMode 属性的当前值,指定用户代理用于派生轨道分辨率的模式。该值将是以下之一:

"none"

轨道具有摄像头、驱动程序或操作系统提供的分辨率。

"crop-and-scale"

轨道的分辨率可能是用户代理从更高的摄像头分辨率进行裁剪或下缩的结果。

共享屏幕轨道的实例属性

包含用户屏幕共享视频的轨道(无论屏幕数据是来自整个屏幕还是屏幕的一部分,例如窗口或标签)通常被视为视频轨道,但它们还支持以下附加设置:

cursor

一个字符串,指示鼠标光标是否包含在生成的流中以及在什么条件下。可能的值为:

always

鼠标在 {domxref("MediaStream")的视频内容中始终可见,除非鼠标已移出内容区域。

motion

如果鼠标光标正在移动,则视频中始终包含鼠标光标,并在停止移动后短时间内包含。

never

视频中从不包含鼠标光标。

displaySurface

一个字符串,指定轨道包含的源类型;可以是以下之一:

browser

流包含用户选择的单个浏览器标签页的内容。

monitor

流的视频轨道包含用户的一个或多个屏幕的全部内容。

window

流包含用户选择共享的单个窗口。

logicalSurface

一个布尔值,如果为 true,则表示流的视频轨道中包含的视频包含后台渲染上下文,而不是用户可见的上下文。如果捕获的视频来自前台(用户可见)源,则为 false

screenPixelRatio

一个数字,表示捕获显示表面的像素物理尺寸(以物理分辨率显示)与捕获屏幕上的 CSS 像素逻辑尺寸(以逻辑分辨率显示)之比。它不能用作约束或功能。

规范

规范
媒体捕获和流
# media-track-settings
屏幕捕获
# extensions-to-mediatracksettings

另见