首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WebRTC停止屏幕分享?

如何使用WebRTC停止屏幕分享?
EN

Stack Overflow用户
提问于 2014-07-21 13:11:16
回答 3查看 5.8K关注 0票数 7

我正在使用getUserMedia访问屏幕共享。当用户单击停止按钮时,我想停止屏幕共享。

根据MediaStream API的说法,应该调用stop()函数来停止共享。但是当我这样做的时候,我发现Chrome栏https://xxx is sharing your screen <button>Stop sharing</button>仍然在那里,尽管流已经停止了。

有没有可以让Chrome条消失的功能?

EN

回答 3

Stack Overflow用户

发布于 2014-07-21 18:15:45

基于命令行标志的屏幕共享可以使用相同的MediaStream.stopMediaStreamTracks.stop方法停止,但是,如果你使用的是desktopCapture API ( demo ),那么有一个cancelChooseDesktopMedia可以像这样使用:

代码语言:javascript
复制
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);
}
票数 2
EN

Stack Overflow用户

发布于 2020-09-23 19:02:50

据我所知,MediaStream.stop方法已被弃用。如果你想停止一个MediaStream,你应该停止并关闭它的轨迹。这样做,你提到的"Chrome bar“将消失,一旦所有与共享屏幕绑定的曲目被停止。这可以通过以下代码来实现。This.screenStream是共享屏幕的MediaStream对象。

代码语言:javascript
复制
    var tracks = this.screenStream.getTracks();
    for( var i = 0 ; i < tracks.length ; i++ ) tracks[i].stop();
票数 1
EN

Stack Overflow用户

发布于 2020-09-25 05:37:00

您可以使用stream.onended

代码语言:javascript
复制
stream.onended = () => {
  console.info("ScreenShare has ended");
};

或者,您可以监听已结束的事件

代码语言:javascript
复制
stream.getVideoTracks()[0].addEventListener('ended', () => {
  //perform your task here
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24858071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档