MediaStreamTrack: applyConstraints() 方法
Baseline 廣泛可用 *
MediaStreamTrack 介面的 applyConstraints() 方法將一組約束應用於軌道;這些約束允許網站或應用為軌道的(可約束)屬性(例如幀率、尺寸、回聲消除等)建立理想值和可接受的值範圍。
約束可以用來確保媒體滿足你偏好的某些指南。例如,你可能偏好高解析度影片,但要求幀率稍低一些,以幫助保持資料速率足夠低,避免網路負擔過重。約束還可以指定理想和/或可接受的尺寸或尺寸範圍。有關如何應用你偏好的約束的更多資訊,請參閱 功能、約束和設定 中的 應用約束。
語法
applyConstraints()
applyConstraints(constraints)
引數
constraints可選-
一個
MediaTrackConstraints物件,列出了要應用於軌道可約束屬性的約束;任何現有約束都將被指定的新值替換,並且任何未包含的可約束屬性都將恢復到其預設約束。如果省略此引數,則會清除所有當前設定的自定義約束。此物件代表了Promise解析必須適用的基本約束集。該物件可能包含一個 `advanced` 屬性,其中包含其他MediaTrackConstraints物件的陣列,這些物件被視為嚴格要求。
返回值
一個 Promise,當約束成功應用時解析。如果約束無法應用,則 promise 會因一個 OverconstrainedError(該錯誤是一個 DOMException,其名稱為 OverconstrainedError,並帶有附加引數)而被拒絕,以表明約束無法滿足。當嘗試配置軌道時,如果指定的約束過於嚴格而無法找到匹配項,則可能發生這種情況。
示例
以下顯示瞭如何指定一組基本和高階約束。它指定頁面或 Web 應用需要寬度在 640 到 1280 之間,高度在 480 到 720 之間,其中每對數字的後一個數字是首選。`advanced` 屬性進一步指定,首選影像尺寸為 1920x1280,或者 縱橫比 為 1.333(如果不可用)。請注意,這些約束也說明了規範中所說的“回退策略”。
const constraints = {
width: { min: 640, ideal: 1280 },
height: { min: 480, ideal: 720 },
advanced: [{ width: 1920, height: 1280 }, { aspectRatio: 1.333 }],
};
navigator.mediaDevices.getUserMedia({ video: true }).then((mediaStream) => {
const track = mediaStream.getVideoTracks()[0];
track
.applyConstraints(constraints)
.then(() => {
// Do something with the track such as using the Image Capture API.
})
.catch((e) => {
// The constraints could not be satisfied by the available devices.
});
});
規範
| 規範 |
|---|
| 媒體捕獲和流 # dom-mediastreamtrack-applyconstraints |
瀏覽器相容性
載入中…