gpt4 book ai didi

constraints - 为了获得两个视频mediaStreamTracks,我应该传递给getUserMedia()哪些约束?

转载 作者:行者123 更新时间:2023-12-04 16:59:14 25 4
gpt4 key购买 nike

我可以通过navigator.mediaDevices.enumerateDevices() promise获得'videoinput'类型的mediaDevices。

我可以通过navigator.mediaDevices.getUserMedia(constraints) promise获得mediaStream。

为了在userMedia中具有两个视频轨道,constraints应该是什么样?

最佳答案

每次调用getUserMedia()最多可以获得一个视频轨道和一个音频轨道,但是您可以多次调用它。但是,这可能会多次询问用户,具体取决于https,浏览器以及用户的操作。

跟随the standard(目前需要在Chrome中使用adapter.js)之后,要获取特定的“videoinput”设备,请使用deviceId约束将其getUserMedia传递到deviceId中:

navigator.mediaDevices.enumerateDevices()
.then(devices => {
var camera = devices.find(device => device.kind == "videoinput");
if (camera) {
var constraints = { deviceId: { exact: camera.deviceId } };
return navigator.mediaDevices.getUserMedia({ video: constraints });
}
})
.then(stream => video.srcObject = stream)
.catch(e => console.error(e));
exact关键字使约束成为必需,从而保证它仅返回正确的约束,否则将失败。

如果您需要两台摄像机,则必须使用不同的 getUserMedia再次调用 deviceId,并希望您所使用的操作系统支持它(例如,电话通常不支持)。

关于constraints - 为了获得两个视频mediaStreamTracks,我应该传递给getUserMedia()哪些约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com