Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在调整大小时更改图片API中新图片的来源吗?_Javascript_Google Chrome_Asynchronous_Async Await - Fatal编程技术网

Javascript 我可以在调整大小时更改图片API中新图片的来源吗?

Javascript 我可以在调整大小时更改图片API中新图片的来源吗?,javascript,google-chrome,asynchronous,async-await,Javascript,Google Chrome,Asynchronous,Async Await,我不确定是否有很多开发者已经研究过Google Chrome v70的新PiP API,但我需要一些帮助。我正在尝试替换“调整大小”上的视频源。为什么?因此,我可以根据PiP窗口大小给出更低或更高分辨率的视频。有效地创建响应性PiP。但是,我遇到了多个问题 1-我只能在用户触发的事件上调用PiP,这意味着我无法基于回调打开PiP窗口。错误:Uncaught(in promise)DOME异常:必须处理用户手势以请求画中画。 2-我需要以某种方式等待,直到加载新源,否则,我会得到以下错误:Unca

我不确定是否有很多开发者已经研究过Google Chrome v70的新PiP API,但我需要一些帮助。我正在尝试替换“调整大小”上的视频源。为什么?因此,我可以根据PiP窗口大小给出更低或更高分辨率的视频。有效地创建响应性PiP。但是,我遇到了多个问题

1-我只能在用户触发的事件上调用PiP,这意味着我无法基于回调打开PiP窗口。错误:
Uncaught(in promise)DOME异常:必须处理用户手势以请求画中画。

2-我需要以某种方式等待,直到加载新源,否则,我会得到以下错误:
Uncaught(承诺中)DOMException:视频元素的元数据尚未加载。

在演示中,他们甚至建议在屏幕上加载一个较小的视频。有人这样做过吗?有人能帮我吗

  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);
  }

你解决问题了吗?我面临着第一个问题。