navigator.mediaDevices.getUserMedia在chrome获取视频流分辨率低(640*480),但是在Safari就是1280*720,是浏览器的问题吗?
获取摄像头stream的分辨率谷歌浏览器分辨率一直是640480很模糊,切OBS则是1280720,在Safari摄像头stream则是正常的1280*720,电脑摄像头分辨率很高并不是摄像头的问题,请大佬们给点思路吧
navigator.mediaDevices.getUserMedia({
video: {
width: { ideal: 1280 },
height: { ideal: 720 }
}
})
.then(function(stream) {
const videoTrack = stream.getVideoTracks()[0];
const settings = videoTrack.getSettings();
console.log('Actual video resolution: ' + settings.width + 'x' + settings.height);
})
.catch(function(error) {
console.log("getUserMedia error: ", error);
});
回复
1个回答
test
2024-06-24
navigator.mediaDevices.getUserMedia({ video: true })
.then(function (stream) {
const track = stream.getVideoTracks()[0];
const capabilities = track.getCapabilities();
// 检查是否支持指定的分辨率
if (capabilities.width && capabilities.height) {
const constraints = {
width: { ideal: 1280 },
height: { ideal: 720 }
};
// 应用分辨率约束
track.applyConstraints(constraints)
.then(function () {
// 分辨率应用成功,可以继续处理视频流
})
.catch(function (error) {
console.error('Error applying constraints:', error);
});
} else {
console.error('Video track does not support setting custom resolutions.');
}
})
.catch(function (error) {
console.error('Error accessing user media:', error);
});
这样能行么?
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容