Могу ли я изменить источник нового API Picture-in-Picture при изменении размера? - PullRequest
0 голосов
/ 25 октября 2018

Я не уверен, что многие разработчики смотрели на новый 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);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...