MediaTrackConstraints

MediaTrackConstraints 字典用於描述一組媒體功能以及每個功能可以採用的值。

約束字典被傳遞給 MediaStreamTrack 介面的 applyConstraints() 方法,以允許指令碼為軌道建立一組精確(必需)值或範圍和/或首選值或值範圍。

透過呼叫 getConstraints() 可以檢索最近請求的自定義約束集。

此型別的物件也可以傳遞給:

  • MediaDevices.getUserMedia() 方法,用於指定從相機或麥克風等硬體請求的媒體流的約束。

  • MediaDevices.getDisplayMedia() 方法,用於指定從螢幕或視窗捕獲請求的媒體流的約束。

約束

以下型別用於指定屬性的約束。它們允許您指定一個或多個 exact 值(其中一個必須是引數的值),或一組 ideal 值(如果可能,應使用這些值)。您還可以指定一個單一值(或一個值陣列),使用者代理將盡力匹配該值,一旦所有更嚴格的約束都已應用。

要了解有關約束如何工作的更多資訊,請參見功能、約束和設定

注意:MediaDevices.getDisplayMedia() 呼叫中使用的約束中不允許使用 minexact 值——它們會產生 TypeError——但它們允許在 MediaStreamTrack.applyConstraints() 呼叫中使用的約束中。

ConstrainBoolean

ConstrainBoolean 約束型別用於指定值為布林值的屬性的約束。其值可以設定為布林值(truefalse)或包含以下屬性的物件:

exact

一個布林值,必須是屬性的值。如果屬性無法設定為此值,則匹配將失敗。

ideal

一個布林值,指定屬性的理想值。如果可能,將使用此值,但如果不可能,使用者代理將使用最接近的匹配項。

ConstrainBooleanOrDOMString

ConstrainBooleanOrDOMString 約束型別用於指定值為布林值或字串值的屬性的約束。它可以採用 ConstrainBooleanConstrainDOMString 部分中指定的值。

ConstrainDouble

ConstrainDouble 約束型別用於指定值為雙精度浮點數的屬性的約束。其值可以設定為數字或包含以下屬性的物件:

max

一個十進位制數字,指定其描述的屬性的最大允許值。如果值不能保持等於或小於此值,則匹配將失敗。

min

一個十進位制數字,指定其描述的屬性的最小允許值。如果值不能保持等於或大於此值,則匹配將失敗。

exact

一個十進位制數字,指定屬性必須具有的特定、必需值才能被認為是可接受的。

ideal

一個十進位制數字,指定屬性的理想值。如果可能,將使用此值,但如果不可能,使用者代理將使用最接近的匹配項。

ConstrainDOMString

ConstrainDOMString 約束型別用於指定值為字串的屬性的約束。其值可以設定為字串、字串陣列或包含以下屬性的物件:

exact

一個字串或字串陣列,其中一個必須是屬性的值。如果屬性無法設定為列出的值之一,則匹配將失敗。

ideal

一個字串或字串陣列,指定屬性的理想值。如果可能,將使用列出的值之一,但如果不可能,使用者代理將使用最接近的匹配項。

ConstrainULong

ConstrainULong 約束型別用於指定值為整數的屬性的約束。其值可以設定為數字或包含以下屬性的物件:

max

一個整數,指定其描述的屬性的最大允許值。如果值不能保持等於或小於此值,則匹配將失敗。

min

一個整數,指定其描述的屬性的最小允許值。如果值不能保持等於或大於此值,則匹配將失敗。

exact

一個整數,指定屬性必須具有的特定、必需值才能被認為是可接受的。

ideal

一個整數,指定屬性的理想值。如果可能,將使用此值,但如果不可能,使用者代理將使用最接近的匹配項。

例項屬性

物件上將存在以下屬性的某些組合(但不一定是全部)。這可能是因為給定瀏覽器不支援該屬性,或者因為它不適用。例如,由於 RTP 在 WebRTC 連線協商期間不提供其中一些值,因此與 RTCPeerConnection 關聯的軌道將不包括某些值,例如 facingModegroupId

所有媒體軌道的例項屬性

deviceId

一個 ConstrainDOMString 物件,指定可接受和/或必需的裝置 ID 或裝置 ID 陣列。

groupId

一個 ConstrainDOMString 物件,指定可接受和/或必需的組 ID 或組 ID 陣列。

音軌的例項屬性

autoGainControl

一個 ConstrainBoolean 物件,指定是否首選和/或需要自動增益控制。

channelCount

一個 ConstrainULong,指定可接受和/或必需的聲道數或聲道數範圍。

echoCancellation

一個 ConstrainBooleanOrDOMString 物件,指定是否首選和/或需要回聲消除,如果支援,指定型別。

latency

一個 ConstrainDouble,指定可接受和/或必需的延遲或延遲範圍。

noiseSuppression

一個 ConstrainBoolean,指定是否首選和/或需要降噪。

sampleRate

一個 ConstrainULong,指定可接受和/或必需的取樣率或採樣率範圍。

sampleSize

一個 ConstrainULong,指定可接受和/或必需的取樣大小或採樣大小範圍。

volume 已廢棄 非標準

一個 ConstrainDouble,指定可接受和/或必需的音量或音量範圍。

影像軌道的例項屬性

whiteBalanceMode

一個 String,指定 "none""manual""single-shot""continuous" 之一。

exposureMode

一個 String,指定 "none""manual""single-shot""continuous" 之一。

focusMode

一個 String,指定 "none""manual""single-shot""continuous" 之一。

pointsOfInterest

感測器上一個或多個興趣點的畫素座標。這要麼是 { x:value, y:value } 形式的物件,要麼是此類物件的陣列,其中 value 是雙精度整數。

exposureCompensation

一個 ConstrainDouble(雙精度整數),指定 f 值調整高達 ±3。

colorTemperature

一個 ConstrainDouble(雙精度整數),指定所需的開爾文色溫。

iso

一個 ConstrainDouble(雙精度整數),指定所需的 ISO 設定。

brightness

一個 ConstrainDouble(雙精度整數),指定所需的亮度設定。

contrast

一個 ConstrainDouble(雙精度整數),指定明暗之間的差異程度。

saturation(飽和度)

一個 ConstrainDouble(雙精度整數),指定顏色強度的程度。

sharpness

一個 ConstrainDouble(雙精度整數),指定邊緣的強度。

focusDistance

一個 ConstrainDouble(雙精度整數),指定到聚焦物件的距離。

zoom

一個 ConstrainDouble(雙精度整數),指定所需的焦距。

torch

一個布林值,定義補光燈是否持續連線,這意味著只要軌道處於活動狀態,它就會保持開啟。

影片軌道的例項屬性

aspectRatio

一個 ConstrainDouble,指定可接受和/或必需的影片 寬高比 或寬高比範圍。

facingMode

一個 ConstrainDOMString 物件,指定可接受和/或必需的面向模式或面向模式陣列。

frameRate

一個 ConstrainDouble,指定可接受和/或必需的幀率或幀率範圍。

height

一個 ConstrainULong,指定可接受和/或必需的影片高度或高度範圍。

width

一個 ConstrainULong,指定可接受和/或必需的影片寬度或寬度範圍。

resizeMode

一個 ConstrainDOMString 物件,指定使用者代理可用於推導影片軌道解析度和幀率的模式或模式陣列。允許的值為:

crop-and-scale

使用者代理可以使用硬體/作業系統的原始輸出的裁剪和解析度或幀率的縮減,以滿足其他約束。此約束允許開發人員即使其約束指示的特定格式不被硬體原生支援,也能獲得縮減後的影片。

none

使用者代理使用底層硬體(如攝像頭或其驅動程式)或作業系統提供的解析度。

如果未指定 resizeMode,瀏覽器將根據考慮指定約束和允許值兩者的“適應度距離”來選擇解析度。

共享螢幕軌道的例項屬性

這些約束適用於傳遞給 getDisplayMedia() 以獲取螢幕共享流的物件的 video 屬性。

displaySurface

一個 ConstrainDOMString,指定使用者可以選擇的顯示錶面型別。這可以是以下字串中的一個,或一個列表以允許多個源表面:

browser

流包含使用者選擇的單個瀏覽器選項卡的內容。

monitor

流的影片軌道包含使用者一個或多個螢幕的全部內容。

window

流包含使用者選擇用於共享的單個視窗。

logicalSurface

一個 ConstrainBoolean 值,可以包含單個布林值或一組布林值,指示是否允許使用者選擇不直接對應於顯示區域的源表面。這些可能包括視窗的後備緩衝區,以允許捕獲被前面其他視窗隱藏的視窗內容,或包含需要滾動以檢視其視窗中全部內容的更大文件的緩衝區。

suppressLocalAudioPlayback 實驗性

一個 ConstrainBoolean 值,描述對 suppressLocalAudioPlayback 可約束屬性值的請求或強制約束。此屬性控制當選項卡被捕獲時,選項卡中播放的音訊是否會繼續透過使用者的本地揚聲器播放。

restrictOwnAudio 實驗性

一個 ConstrainBoolean 值,指定對 restrictOwnAudio 可約束屬性值的請求或強制約束。此屬性控制源自捕獲選項卡的系統音訊是否從螢幕捕獲中過濾掉。

規範

規範
媒體捕獲和流
# dom-mediatrackconstraints
螢幕捕獲
# extensions-to-mediatrackconstraintset

另見