这是一种已知的问题,Chrome在Linux和Windows上的行为不同。可能的解决方法是使用detectRTC库,该库提供跨浏览器代码示例,以应对不同的浏览器和操作系统。在该示例中,您可以使用以下代码来避免这个问题:
var constraints = {
audio: true,
video: {
deviceId: { exact: myDeviceId },
facingMode: "user",
},
};
if (DetectRTC.osName === "Linux" && DetectRTC.browser.name === "Chrome") {
constraints.video.facingMode = { exact: "user" };
}
在使用applyConstraints()时,也需要使用相同的检测方法,以便对Linux和Windows OS执行不同的代码。