如何解决有没有办法绕过 Chrome desktopCapture 的选择媒体屏幕?
我正在使用 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 上创建的行为:
- 我点击我的 Chrome 应用程序,它显示了一个“开始录制”按钮(id=startRecording 在上面的代码中使用)。 Start Recording button - custom screen
- 点击此按钮后,它会显示此 Google 屏幕以选择我要录制的内容: Google's Choose media prompt
- 然后我开始使用这个屏幕。
我想要达到的目标: 一种绕过 Google 生成的屏幕以选择要录制的媒体的方法。我想在我的代码中传递媒体类型,并在单击第一个“开始录制”按钮时,我希望它开始录制我在代码中传递的类型,而不是向我显示选择媒体提示。
能做到吗?
解决方法
不,出于安全原因——Chrome 不希望任何工具能够从浏览器外部访问敏感数据。但是,您可以在不使用 chrome.tabs.captureVisibleTab
提示的情况下捕获当前标签。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。