1

我可以在不选择要共享的应用程序的情况下关闭 getDisplayMedia({video:true}) 的本机屏幕选择器吗?据我所知,如果正在共享的轨道停止,它会在 track.stop() 上自动关闭。但是,有一个实例,我需要在不按取消或选择要共享的应用程序的情况下关闭本机屏幕选择器。

屏幕选择器图片

4

1 回答 1

1

刷新页面:

window.location = window.location.href;

这将在所有浏览器中删除这个原本粘滞的提示。

在 Chrome 中,提示是模态的,但是这个使用超时的演示对我有用:

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

button.onclick = async () => {
  const stream = await Promise.race([
    navigator.mediaDevices.getDisplayMedia({video: true}),
    wait(5000)
  ]);
  if (!stream) {
    window.location = window.location.href;
  }
  video.srcObject = stream;

当然,这有可能在用户使用它时撕掉选择器。

于 2019-11-15T15:43:58.760 回答