如何停止使用WebRTC进行屏幕共享
how to stop screen sharing using WebRTC?
我正在使用getUserMedia访问屏幕共享。当用户单击停止按钮时,我想停止屏幕共享。
根据MediaStream API,应该调用stop()
函数来停止共享。但当我这样做时,我发现Chrome工具栏https://xxx is sharing your screen <button>Stop sharing</button>
仍然存在,尽管流已经停止。
有没有一个功能可以让Chrome栏消失?
据我所知,MediaStream.stop方法已被弃用。如果你想停止一个媒体流,你应该停止并关闭它的轨道。通过这样做;铬条";一旦所有绑定到共享屏幕的曲目都停止,您提到的将消失。这可以通过以下代码实现"this.screenStream";是共享屏幕的MediaStream对象。
var tracks = this.screenStream.getTracks();
for( var i = 0 ; i < tracks.length ; i++ ) tracks[i].stop();
基于命令行标志的屏幕共享可以使用相同的MediaStream.stop
或MediaStreamTracks.stop
方法停止,但如果您使用的是桌面捕获API(演示(,则有cancelChooseDesktopMedia
可以这样使用:
function releaseCapturing() {
// getting desktop-media-id from local-storage
chrome.desktopCapture.cancelChooseDesktopMedia(parseInt(localStorage['desktop-media-request-id']));
}
function captureDesktop() {
var desktop_id = chrome.desktopCapture.chooseDesktopMedia(
["screen", "window"], onAccessApproved);
// storing desktop-media-id in the local-storage
localStorage.setItem('desktop-media-request-id', desktop_id);
}
您可以使用stream.onend
stream.onended = () => {
console.info("ScreenShare has ended");
};
或者您可以监听结束的事件
stream.getVideoTracks()[0].addEventListener('ended', () => {
//perform your task here
});
// get the media stream
const mediaStream = await navigator.mediaDevices.getDisplayMedia();
// get the media track
const mediaTrack = mediaStream.getTracks()[0];
// stop the media track to stop screen sharing
mediaTrack.stop();
在我的例子中,我调用了MediaStream.getTracks(([0].stop((
相关文章:
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- Facebook共享显示一个接一个的空白页面
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 通过javascript/html访问twitter共享iframe
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- 导航栏没有调整到浏览器屏幕的大小
- 在我的SPA应用程序中集成Facebook共享的问题
- 调整屏幕大小后不显示子菜单
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- 无法使用电子运行屏幕共享镶边应用程序
- "共享屏幕”;在Skype链接上
- Web RTC屏幕共享不工作在Chrome
- 使用MediaStream API在javascript中捕获屏幕截图或共享实时屏幕
- 如何停止使用WebRTC进行屏幕共享
- 我应该如何创建“屏幕共享”?SignalR
- 使用webrtc共享屏幕的某些部分
- WebRTC屏幕+录音解决方案
- 我可以禁用Windows 8共享栏上的屏幕截图选项吗
- 通过WebRTC和浏览器支持进行屏幕共享