При использовании navigator.mediaDevices.getUserMedia для захвата видео с помощью JavaScript, я замечаю, что Chrome на Android специально устанавливает высоту видео на значение ширины, предоставленное функции getUserMedia.
Пробовал в Chrome на Android и в бесплатном браузере AdBlock (на основе Chromium), только Chrome переворачивал размеры.
html: <video id="video" controls="controls"></video>
js:
let constraintObj = {
audio: false,
video: {
facingMode: "user",
width: { min: 600, ideal: 600, max: 600 },
height: { min: 300, ideal: 300, max: 300 }
}
};
navigator.mediaDevices.getUserMedia(constraintObj)
.then(function (mediaStreamObj) {
//connect the media stream to the first video element
let video = document.querySelector('#video');
if ("srcObject" in video) {
video.srcObject = mediaStreamObj;
} else {
//old version
video.src =
window.URL.createObjectURL(mediaStreamObj);
}
video.onloadedmetadata = function (ev) {
//show in the video element what is being captured by the webcam
video.play();
};
});
Ожидаемый результат: размер элемента видео по ширине 600 и высоте 300
Фактический результат приChrome на телефоне Android: видеоэлемент имеет высоту 600 и ширину 300