MediaTrackConstraints

Từ điển MediaTrackConstraints được dùng để mô tả một tập hợp các khả năng phương tiện và giá trị hoặc các giá trị mà mỗi khả năng có thể nhận.

Một từ điển ràng buộc được truyền vào phương thức applyConstraints() của giao diện MediaStreamTrack để cho phép một script thiết lập tập hợp các giá trị chính xác (bắt buộc) hoặc các phạm vi và/hoặc các giá trị ưu tiên hoặc phạm vi giá trị ưu tiên cho rãnh.

Tập hợp ràng buộc tùy chỉnh được yêu cầu gần nhất có thể được truy xuất bằng cách gọi getConstraints().

Các đối tượng kiểu này cũng có thể được truyền vào:

  • Phương thức MediaDevices.getUserMedia(), để chỉ định các ràng buộc trên luồng phương tiện được yêu cầu từ phần cứng như camera hoặc micro.

  • Phương thức MediaDevices.getDisplayMedia(), để chỉ định các ràng buộc trên luồng phương tiện được yêu cầu từ việc chụp màn hình hoặc cửa sổ.

Ràng buộc

Các kiểu sau đây được dùng để chỉ định một ràng buộc cho một thuộc tính. Chúng cho phép bạn chỉ định một hoặc nhiều giá trị exact mà một trong số đó phải là giá trị của tham số, hoặc một tập hợp các giá trị ideal nên được sử dụng nếu có thể. Bạn cũng có thể chỉ định một giá trị duy nhất (hoặc mảng các giá trị) mà user agent sẽ cố gắng khớp sau khi tất cả các ràng buộc nghiêm ngặt hơn đã được áp dụng.

Để tìm hiểu thêm về cách ràng buộc hoạt động, xem Khả năng, ràng buộc và thiết lập.

Note: Các giá trị minexact không được phép trong các ràng buộc dùng trong lệnh gọi MediaDevices.getDisplayMedia() — chúng sẽ tạo ra TypeError — nhưng được phép trong các ràng buộc dùng trong lệnh gọi MediaStreamTrack.applyConstraints().

ConstrainBoolean

Kiểu ràng buộc ConstrainBoolean được dùng để chỉ định ràng buộc cho một thuộc tính có giá trị là Boolean. Giá trị của nó có thể được đặt thành Boolean (true hoặc false) hoặc một đối tượng chứa các thuộc tính sau:

exact

Boolean phải là giá trị của thuộc tính. Nếu thuộc tính không thể được đặt thành giá trị này, quá trình khớp sẽ thất bại.

ideal

Boolean chỉ định giá trị lý tưởng cho thuộc tính. Nếu có thể, giá trị này sẽ được sử dụng, nhưng nếu không thể, user agent sẽ sử dụng kết quả khớp gần nhất có thể.

ConstrainBooleanOrDOMString

Kiểu ràng buộc ConstrainBooleanOrDOMString được dùng để chỉ định ràng buộc cho một thuộc tính có giá trị là Boolean hoặc chuỗi. Nó có thể nhận các giá trị như được chỉ định trong các phần ConstrainBooleanConstrainDOMString.

ConstrainDouble

Kiểu ràng buộc ConstrainDouble được dùng để chỉ định ràng buộc cho một thuộc tính có giá trị là số thực dấu phẩy động độ chính xác kép. Giá trị của nó có thể được đặt thành một số hoặc một đối tượng chứa các thuộc tính sau:

max

Số thập phân chỉ định giá trị lớn nhất được phép của thuộc tính mà nó mô tả. Nếu giá trị không thể duy trì bằng hoặc nhỏ hơn giá trị này, quá trình khớp sẽ thất bại.

min

Số thập phân chỉ định giá trị nhỏ nhất được phép của thuộc tính mà nó mô tả. Nếu giá trị không thể duy trì bằng hoặc lớn hơn giá trị này, quá trình khớp sẽ thất bại.

exact

Số thập phân chỉ định một giá trị cụ thể, bắt buộc mà thuộc tính phải có để được chấp nhận.

ideal

Số thập phân chỉ định giá trị lý tưởng cho thuộc tính. Nếu có thể, giá trị này sẽ được sử dụng, nhưng nếu không thể, user agent sẽ sử dụng kết quả khớp gần nhất có thể.

ConstrainDOMString

Kiểu ràng buộc ConstrainDOMString được dùng để chỉ định ràng buộc cho một thuộc tính có giá trị là chuỗi. Giá trị của nó có thể được đặt thành một chuỗi, mảng chuỗi, hoặc một đối tượng chứa các thuộc tính sau:

exact

Chuỗi hoặc mảng chuỗi, một trong số đó phải là giá trị của thuộc tính. Nếu thuộc tính không thể được đặt thành một trong các giá trị được liệt kê, quá trình khớp sẽ thất bại.

ideal

Chuỗi hoặc mảng chuỗi, chỉ định các giá trị lý tưởng cho thuộc tính. Nếu có thể, một trong các giá trị được liệt kê sẽ được sử dụng, nhưng nếu không thể, user agent sẽ sử dụng kết quả khớp gần nhất có thể.

ConstrainULong

Kiểu ràng buộc ConstrainULong được dùng để chỉ định ràng buộc cho một thuộc tính có giá trị là số nguyên. Giá trị của nó có thể được đặt thành một số hoặc một đối tượng chứa các thuộc tính sau:

max

Số nguyên chỉ định giá trị lớn nhất được phép của thuộc tính mà nó mô tả. Nếu giá trị không thể duy trì bằng hoặc nhỏ hơn giá trị này, quá trình khớp sẽ thất bại.

min

Số nguyên chỉ định giá trị nhỏ nhất được phép của thuộc tính mà nó mô tả. Nếu giá trị không thể duy trì bằng hoặc lớn hơn giá trị này, quá trình khớp sẽ thất bại.

exact

Số nguyên chỉ định một giá trị cụ thể, bắt buộc mà thuộc tính phải có để được chấp nhận.

ideal

Số nguyên chỉ định giá trị lý tưởng cho thuộc tính. Nếu có thể, giá trị này sẽ được sử dụng, nhưng nếu không thể, user agent sẽ sử dụng kết quả khớp gần nhất có thể.

Thuộc tính phiên bản

Một số kết hợp nhất định nhưng không nhất thiết phải là tất cả các thuộc tính sau đây sẽ tồn tại trong đối tượng. Điều này có thể vì trình duyệt không hỗ trợ thuộc tính đó, hoặc vì nó không áp dụng. Ví dụ, vì RTP không cung cấp một số giá trị trong quá trình thương lượng kết nối WebRTC, một rãnh liên kết với RTCPeerConnection sẽ không bao gồm các giá trị như facingMode hay groupId.

Thuộc tính phiên bản của tất cả rãnh phương tiện

deviceId

Đối tượng ConstrainDOMString chỉ định ID thiết bị hoặc mảng các ID thiết bị được chấp nhận và/hoặc yêu cầu.

groupId

Đối tượng ConstrainDOMString chỉ định ID nhóm hoặc mảng các ID nhóm được chấp nhận và/hoặc yêu cầu.

Thuộc tính phiên bản của rãnh âm thanh

autoGainControl

Đối tượng ConstrainBoolean chỉ định xem kiểm soát độ khuếch đại tự động có được ưu tiên và/hoặc yêu cầu hay không.

channelCount

ConstrainULong chỉ định số kênh hoặc phạm vi số kênh được chấp nhận và/hoặc yêu cầu.

echoCancellation

Đối tượng ConstrainBooleanOrDOMString chỉ định xem khử tiếng vọng có được ưu tiên và/hoặc yêu cầu hay không, và nếu được hỗ trợ, loại nào.

latency

ConstrainDouble chỉ định độ trễ hoặc phạm vi độ trễ được chấp nhận và/hoặc yêu cầu.

noiseSuppression

ConstrainBoolean chỉ định xem triệt tiếng ồn có được ưu tiên và/hoặc yêu cầu hay không.

sampleRate

ConstrainULong chỉ định tốc độ lấy mẫu hoặc phạm vi tốc độ lấy mẫu được chấp nhận và/hoặc yêu cầu.

sampleSize

ConstrainULong chỉ định kích thước mẫu hoặc phạm vi kích thước mẫu được chấp nhận và/hoặc yêu cầu.

volume Deprecated Non-standard

ConstrainDouble chỉ định âm lượng hoặc phạm vi âm lượng được chấp nhận và/hoặc yêu cầu.

Thuộc tính phiên bản của rãnh hình ảnh

whiteBalanceMode

String chỉ định một trong "none", "manual", "single-shot", hoặc "continuous".

exposureMode

String chỉ định một trong "none", "manual", "single-shot", hoặc "continuous".

focusMode

String chỉ định một trong "none", "manual", "single-shot", hoặc "continuous".

pointsOfInterest

Tọa độ pixel trên cảm biến của một hoặc nhiều điểm quan tâm. Đây là đối tượng có dạng { x:value, y:value } hoặc mảng các đối tượng như vậy, trong đó value là số nguyên độ chính xác kép.

exposureCompensation

ConstrainDouble (số nguyên độ chính xác kép) chỉ định điều chỉnh f-stop lên đến ±3.

colorTemperature

ConstrainDouble (số nguyên độ chính xác kép) chỉ định nhiệt độ màu mong muốn tính bằng độ Kelvin.

iso

ConstrainDouble (số nguyên độ chính xác kép) chỉ định cài đặt ISO mong muốn.

brightness

ConstrainDouble (số nguyên độ chính xác kép) chỉ định cài đặt độ sáng mong muốn.

contrast

ConstrainDouble (số nguyên độ chính xác kép) chỉ định mức độ chênh lệch giữa sáng và tối.

saturation

ConstrainDouble (số nguyên độ chính xác kép) chỉ định mức độ bão hòa màu sắc.

sharpness

ConstrainDouble (số nguyên độ chính xác kép) chỉ định độ sắc nét của các cạnh.

focusDistance

ConstrainDouble (số nguyên độ chính xác kép) chỉ định khoảng cách đến đối tượng được lấy nét.

zoom

ConstrainDouble (số nguyên độ chính xác kép) chỉ định tiêu cự mong muốn.

torch

Giá trị boolean xác định xem đèn flash có được kết nối liên tục hay không, nghĩa là đèn bật suốt trong khi rãnh đang hoạt động.

Thuộc tính phiên bản của rãnh video

aspectRatio

ConstrainDouble chỉ định aspect ratio video hoặc phạm vi tỷ lệ khung hình được chấp nhận và/hoặc yêu cầu.

facingMode

Đối tượng ConstrainDOMString chỉ định một hướng hoặc mảng các hướng được chấp nhận và/hoặc yêu cầu.

frameRate

ConstrainDouble chỉ định tốc độ khung hình hoặc phạm vi tốc độ khung hình được chấp nhận và/hoặc yêu cầu.

height

ConstrainULong chỉ định chiều cao video hoặc phạm vi chiều cao được chấp nhận và/hoặc yêu cầu.

width

ConstrainULong chỉ định chiều rộng video hoặc phạm vi chiều rộng được chấp nhận và/hoặc yêu cầu.

resizeMode

Đối tượng ConstrainDOMString chỉ định chế độ hoặc mảng các chế độ mà UA có thể dùng để lấy độ phân giải và tốc độ khung hình của rãnh video. Các giá trị được phép là:

crop-and-scale

User agent có thể dùng cắt xén và thu nhỏ độ phân giải hoặc tốc độ khung hình từ đầu ra thô của phần cứng/hệ điều hành để đáp ứng các ràng buộc khác. Ràng buộc này cho phép các nhà phát triển nhận video đã thu nhỏ ngay cả khi định dạng cụ thể mà ràng buộc của họ chỉ định không được phần cứng hỗ trợ tự nhiên.

none

User agent sử dụng độ phân giải do phần cứng bên dưới cung cấp, chẳng hạn như camera hoặc driver của nó, hoặc hệ điều hành.

Nếu resizeMode không được chỉ định, trình duyệt sẽ chọn độ phân giải dựa trên khoảng cách phù hợp có tính đến các ràng buộc được chỉ định và cả hai giá trị được phép.

Thuộc tính phiên bản của rãnh chia sẻ màn hình

Các ràng buộc này áp dụng cho thuộc tính video của đối tượng được truyền vào getDisplayMedia() để lấy luồng cho chia sẻ màn hình.

displaySurface

ConstrainDOMString chỉ định các loại bề mặt hiển thị mà người dùng có thể chọn. Đây có thể là một trong các chuỗi sau, hoặc danh sách của chúng để cho phép nhiều nguồn bề mặt:

browser

Luồng chứa nội dung của một tab trình duyệt đơn lẻ mà người dùng đã chọn.

monitor

Rãnh video trong luồng chứa toàn bộ nội dung của một hoặc nhiều màn hình của người dùng.

window

Luồng chứa một cửa sổ đơn lẻ mà người dùng đã chọn để chia sẻ.

logicalSurface

Giá trị ConstrainBoolean có thể chứa một giá trị Boolean duy nhất hoặc tập hợp chúng, cho biết có cho phép người dùng chọn các bề mặt nguồn không tương ứng trực tiếp với các vùng hiển thị hay không. Chúng có thể bao gồm các bộ đệm hỗ trợ cho cửa sổ để cho phép chụp nội dung cửa sổ bị che khuất bởi các cửa sổ khác ở phía trước, hoặc các bộ đệm chứa các tài liệu lớn hơn cần cuộn để xem toàn bộ nội dung trong cửa sổ của chúng.

suppressLocalAudioPlayback Experimental

Giá trị ConstrainBoolean mô tả các ràng buộc được yêu cầu hoặc bắt buộc đặt lên giá trị của thuộc tính có thể ràng buộc suppressLocalAudioPlayback. Thuộc tính này kiểm soát xem âm thanh đang phát trong một tab có tiếp tục được phát ra loa cục bộ của người dùng hay không khi tab đó được chụp.

restrictOwnAudio Experimental

Giá trị ConstrainBoolean chỉ định các ràng buộc được yêu cầu hoặc bắt buộc đặt lên giá trị của thuộc tính có thể ràng buộc restrictOwnAudio. Thuộc tính này kiểm soát xem âm thanh hệ thống xuất phát từ tab đang chụp có bị lọc bỏ khỏi chụp màn hình hay không.

Thông số kỹ thuật

Specification
Media Capture and Streams
# dom-mediatrackconstraints
Screen Capture
# extensions-to-mediatrackconstraintset

Xem thêm