【问题标题】:Is there a way to bypass Chrome desktopCapture's Choose Media Screen?有没有办法绕过 Chrome desktopCapture 的选择媒体屏幕?
【发布时间】:2021-01-27 22:27:21
【问题描述】:

我正在使用 Chrome desktopCapture API 创建屏幕录制 Chrome 应用程序。

目前,我正在这样做:


app.js:

    document.querySelector('#startRecording').addEventListener('click', recordClick);
    
    function recordClick(event) {
        console.log("Start Button clicked");
        pending_request_id = chrome.desktopCapture.chooseDesktopMedia(["screen"], accessToRecord);
    }

function accessToRecord(id, options){
    if (!id) {
        console.log('Access rejected.');
        return;
    }

    let audioConstraint = {
        mandatory: {
          chromeMediaSource: 'desktop',
          chromeMediaSourceId: id
        }
    };
  
    console.log(options.canRequestAudioTrack);

    if (!options.canRequestAudioTrack)
      audioConstraint = false;
    //console.log("id is: "+id);

    navigator.webkitGetUserMedia({
        audio : audioConstraint,
        video : {
            mandatory: {
                chromeMediaSource: 'desktop',
                chromeMediaSourceId: id,
                maxWidth:screen.width,
                maxHeight:screen.height
            }
        }
    }, startStream, failedStream);
}

background.js:

chrome.app.runtime.onLaunched.addListener(function() {
  console.log("Launch Link Clicked");
  chrome.app.window.create('index.html', {
    bounds: {
      width: 800,
      height: 600
    }
  });
});

manifest.json:

{
    "manifest_version" : 2,
    "name" : "My Screen Recorder",
    "description" : "Allows screen recording",
    "version" : "1",
   "app" : {
    "background" : {
        "scripts" : ["background.js"]
    }
   },    
   "permissions" : ["desktopCapture"]
}

在 UI 上创建的行为:

  1. 我点击我的 Chrome 应用程序,它显示了一个“开始录制”按钮(上面代码中使用了 id=startRecording)。 Start Recording button - custom screen
  2. 当我点击这个按钮时,它会显示这个谷歌屏幕来选择我想要记录的内容: Google's Choose media prompt
  3. 然后我开始使用这个屏幕。

我想要实现的目标: 一种绕过 Google 生成的屏幕来选择要录制的媒体的方法。我想在我的代码中传递媒体类型,并在单击第一个“开始录制”按钮时,我希望它开始录制我在代码中传递的类型,而不是向我显示选择媒体提示。

有可能吗?

【问题讨论】:

  • 寻找相同的。总是有那个丑陋的弹出窗口是糟糕的用户体验。
  • 是的,这也是我的主要原因@bhagyashingale。如果您发现任何内容,请发表评论。
  • 所以一个名为 awesome screenshot 的扩展设法绕过了它。我认为使用的是 webRTC 而不是 chrome api。如果您使用它来解决它,请让我参与其中。

标签: javascript google-chrome-extension webrtc screen-recording desktopcapturer


【解决方案1】:

不,出于安全原因,Chrome 不希望任何工具能够从浏览器外部访问敏感数据。但是,您可以在不使用chrome.tabs.captureVisibleTab 提示的情况下捕获当前选项卡。

【讨论】:

    猜你喜欢
    • 2017-12-23
    • 1970-01-01
    • 2017-05-09
    • 2021-09-20
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多