Я не уверен, что многие разработчики смотрели на новый API PiP из Google Chrome v70, но мне нужна помощь.Я пытаюсь заменить источник видео при изменении размера.Зачем?Так что я могу дать видео с более низким или высоким разрешением в зависимости от размера окна PiP.Эффективно создавая отзывчивый PiP.Однако я столкнулся с несколькими проблемами.
1 - Я могу вызывать PiP только при событиях, инициированных пользователем, то есть я не могу открыть окно PiP на основе обратного вызова.Ошибка: Uncaught (in promise) DOMException: Must be handling a user gesture to request picture in picture.
2 - Мне нужно как-то дождаться загрузки нового источника, в противном случае я получаю следующую ошибку: Uncaught (in promise) DOMException: Metadata for the video element are not loaded yet.
Тамдемо они даже предлагают загрузить меньшее видео при изменении размера.Кто-нибудь делал это?Кто-нибудь может мне помочь?
videoElement.addEventListener('enterpictureinpicture', function(event) {
pipWindow = event.pictureInPictureWindow;
pipWindow.addEventListener('resize', onPipWindowResize);
});
videoElement.addEventListener('leavepictureinpicture', function() {
pipWindow.removeEventListener('resize', onPipWindowResize);
});
function onPipWindowResize() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(async function() {
await document.exitPictureInPicture();
videoElement.setAttribute('src', './video-sd.mp4');
await videoElement.requestPictureInPicture();
}, 1000);
}