InputDeviceInfo: getCapabilities() 方法
InputDeviceInfo 介面的 getCapabilities() 方法返回一個 MediaTrackCapabilities 物件,該物件描述了裝置 MediaStream 的主要音訊或影片軌道。
語法
js
getCapabilities()
引數
無。
返回值
一個 MediaTrackCapabilities 物件,它指定了使用者代理支援的每個可約束屬性的值或值範圍。它要求返回與呼叫 getUserMedia({ deviceId: deviceInfo.deviceId }) 返回的 MediaStream 中該裝置的(影片或音訊)相同 kind 的第一個 MediaStreamTrack 上的 getCapabilities() 所返回的資訊相同。
有關常用支援的屬性及其型別的列表,請參閱 MediaStreamTrack.getCapabilities()。
注意: 如果使用者未授予訪問輸入裝置的許可權,則會返回一個空物件。
示例
在以下示例中,我們使用 mediaDevices.getUserMedia() 請求訪問音訊和影片裝置的許可權,因為要使用 getCapabilities(),我們需要訪問裝置的許可權。
如果 device 是一個 InputDeviceInfo 物件,那麼 getCapabilities() 將返回一個包含表示其功能的成員的物件。例如,影片流將不包含 noiseSuppression 等自動屬性。
js
// Get permission to access audio or video devices
navigator.mediaDevices
.getUserMedia({ audio: true, video: true })
// Enumerate media devices
.then(() => navigator.mediaDevices.enumerateDevices())
.then((devices) => {
devices.forEach((device) => {
if (typeof device.getCapabilities === "function") {
console.log("Capabilities:", device.getCapabilities()); // A MediaTrackCapabilities object.
} else {
console.log("Device does not support getCapabilities:", device);
}
});
})
.catch((mediaError) => {
console.error("Error accessing media devices:", mediaError);
});
規範
| 規範 |
|---|
| 媒體捕獲和流 # dom-inputdeviceinfo-getcapabilities |
瀏覽器相容性
載入中…
另見
MediaStreamTrack.getCapabilities(),它也返回一個MediaTrackCapabilities物件。