Javascript 处理本机取消getUserMedia screenshare的正确方法是什么?

Javascript 处理本机取消getUserMedia screenshare的正确方法是什么?,javascript,google-chrome-extension,getusermedia,screensharing,Javascript,Google Chrome Extension,Getusermedia,Screensharing,我将screenshare与getUserMedia一起用于我正在开发的web应用程序 我目前正在使用带有Chrome扩展的Chrome,使用下面的API来实现该功能,但该功能在Firefox中也是可能的,并且将来可能通过getDisplayMedia或其他方式在本机上可用(我相信过去是可能的)。 在屏幕共享期间,浏览器底部会显示一个本机对话框以停止屏幕共享。我想找到一种方法来处理这个事件,但我不知道有一种通用的、标准的方法来实现这一点。有没有合适的方法来实现这一点(最好是在所有的API中),

我将screenshare与getUserMedia一起用于我正在开发的web应用程序

我目前正在使用带有Chrome扩展的Chrome,使用下面的API来实现该功能,但该功能在Firefox中也是可能的,并且将来可能通过getDisplayMedia或其他方式在本机上可用(我相信过去是可能的)。


在屏幕共享期间,浏览器底部会显示一个本机对话框以停止屏幕共享。我想找到一种方法来处理这个事件,但我不知道有一种通用的、标准的方法来实现这一点。有没有合适的方法来实现这一点(最好是在所有的API中),或者我应该通过跟踪事件来实现这一点?

我不太确定Chrome未指定的实现是如何运行的,但是是的,您通常必须收听VideoTrack的事件

此代码段应仅在FF中可用,FF是唯一允许非chrome页面访问此功能的代码段

navigator.mediaDevices.getUserMedia({video:{mediaSource:'screen'})。然后(stream=>{
document.getElementById('vid').srcObject=stream;
const v_track=stream.getVideoTracks()[0];
v_track.onended=e=>console.log('stopped');
}).catch(控制台错误)

似乎是这样。我编辑了上面的代码,因为没有定义vid。我在Chrome上试过,但它似乎不在屏幕上。Firefox运行良好。谢谢