MediaStreamTrack.applyConstraints()方法


MediaStreamTrack接口的applyConstraints()方法的作用是向軌道應用一組約束。 這些約束使網站或應用程序可以為軌道的可約束屬性(例如幀頻,尺寸,回聲消除等)建立理想值和可接受的范圍值。

約束可用於確保媒體符合您喜歡的某些准則。 例如,您可能更喜歡高清視頻,但要求幀速率稍低一些,以幫助將數據速率保持在足夠低的水平,以免使網絡過載。 約束還可以指定理想的和/或可接受的大小或大小范圍。 

語法

 

const promise = track.applyConstraints(constraints);

 

參數

constraints 可選的

一個MediaTrackConstraints對象,列出要應用於軌道的可約束屬性的約束。任何現有的約束都將替換為指定的新值,並且未包括的所有可約束屬性都將恢復為其默認約束。 如果省略此參數,那么將清除所有當前設置的自定義約束。 

返回值

當約束應用成功的時,返回一個Promise對象。 如果約束應用失敗,則使用名為OverconstrainedError的MediaStreamError失敗回調Promise,以指示無法滿足約束。 如果指定的約束過於嚴格而無法在試圖配置軌道時找到匹配項,則會發生這種情況。

例子

下面的例子顯示了如何指定基本和高級約束集。 它指定頁面或Web應用程序需要在640和1280之間的寬度以及在480和720之間的高度,每對中的后一個數字是首選。 advanced屬性進一步指定1920 x 1280的圖像大小是首選,如果沒有可用的寬高比,則為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.
    });
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM