I run the following code on iOS Safari:
const stream = await navigator.mediaDevices.getUserMedia({
video: {
width: 960,
height: 540,
},
});
const { width, height } = stream.getVideoTracks()[0].getSettings();
console.log(`${width} * ${height}`); // 960 * 540
setTimeout(() => {
const { width, height } = stream.getVideoTracks()[0].getSettings();
console.log(`setTimeout: ${width} * ${height}`); // setTimeout: 540 * 960
}, 600);
The width and height of width and height of the video track obtained by synchronously are different from those obtained by asynchronously.
This is my test result and userAgent:
Can someone help with this issue?