web端設置的分辨率是19201080,實際採集到的只有1280720.
注:macOS系統的intel系列電腦,雖然檢測到的是19201080,但是intel芯片限制了採集最高到1280720(720P)
可通過下面的方法檢測瀏覽器支持的最大分辨是多少:
async function getMaxResolution() {
try {
// 枚舉所有媒體設備
const devices = await navigator.mediaDevices.enumerateDevices();
const videoDevices = devices.filter(device => device.kind === 'videoinput');
if (videoDevices.length === 0) {
console.error('沒有找到視頻輸入設備');
return;
}
// 選擇第一個視頻輸入設備
const selectedDevice = videoDevices[0];
// 請求訪問攝像頭並獲取其能力
const stream = await navigator.mediaDevices.getUserMedia({
video: { deviceId: selectedDevice.deviceId }
});
// 獲取視頻軌道
const track = stream.getVideoTracks()[0];
const capabilities = track.getCapabilities();
// 打印設備能力
console.log('Device Capabilities:', capabilities);
// 獲取最大寬度和高度
const maxWidth = capabilities.width && capabilities.width.max ? capabilities.width.max : null;
const maxHeight = capabilities.height && capabilities.height.max ? capabilities.height.max : null;
console.log('Max Resolution:', maxWidth, 'x', maxHeight);
// 停止並釋放媒體流
stream.getTracks().forEach(track => track.stop());
return { maxWidth, maxHeight };
} catch (error) {
console.error('Error accessing media devices or getting capabilities:', error);
}
}
// 調用函數
getMaxResolution();