MediaTrackConstraints: deviceId 屬性

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本使用。自 2017 年 9 月以來,它已在瀏覽器中提供。

MediaTrackConstraints 字典的 deviceId 屬性是一個 ConstrainDOMString,用於描述在 deviceId 可約束屬性上設定的請求的或強制的約束。

如果需要,您可以透過呼叫 MediaDevices.getSupportedConstraints() 返回的 MediaTrackSupportedConstraints.deviceId 的值來確定此約束是否受支援。但是,通常這沒有必要,因為瀏覽器會忽略它們不認識的任何約束。

由於 RTP 不包含此資訊,因此與 WebRTC RTCPeerConnection 關聯的軌道永遠不會包含此屬性。

一個基於 ConstrainDOMString 的物件,指定一個或多個可接受、理想和/或精確(強制)的裝置 ID,這些 ID 可作為媒體內容的來源。

裝置 ID 對於給定的源是唯一的,並且在同一源的瀏覽會話之間保證是相同的。然而,deviceId 的值由軌道內容的來源決定,並且規範沒有強制規定特定的格式(儘管建議使用某種 GUID)。這意味著當您呼叫 getCapabilities() 時,給定的軌道只會返回一個 deviceId 值。

因此,在呼叫 MediaStreamTrack.applyConstraints() 時,deviceId 沒有用處,因為只有一個可能的值;但是,您可以記錄一個 deviceId 並使用它來確保您在多次呼叫 getUserMedia() 時獲得相同的源。

注意: 裝置 ID 在瀏覽會話之間相同的規則有一個例外:私密瀏覽模式將使用不同的 ID,並且每次瀏覽會話都會更改它。

示例

請參閱 Constraint exerciser 示例。

規範

規範
媒體捕獲和流
# dom-mediatrackconstraintset-deviceid

瀏覽器相容性

另見