у меня так:
<video id="myVideo" src="" muted playsinline autoplay loop poster="/media/poster.jpg"></video>
document.addEventListener('DOMContentLoaded', function () {
const myVideo = document.getElementById('myVideo');
if (myVideo) {
setMyVideoSource();
}
function setMyVideoSource() {
if (window.innerHeight < window.innerWidth) {
myVideo.setAttribute('src', '/media/video-desktop.mp4');
myVideo.load();
myVideo.play();
} else if (window.innerHeight > window.innerWidth) {
myVideo.setAttribute('src', '/media/video-mobile.mp4');
myVideo.load();
myVideo.play();
}
}
});
в else if можно добавить условия для разных разрешений.
например,
else if (window.innerWidth > 640 && window.innerHeight > window.innerWidth)
else if (window.innerWidth < 641 && window.innerHeight > window.innerWidth)
также можно дополнительно повесить эту функцию на onresize