我正在使用 Chrome desktopCapture API 创建屏幕录制 Chrome 应用程序。
目前,我正在这样做:
应用程序.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);
}
背景.js:
chrome.app.runtime.onLaunched.addListener(function() {
console.log("Launch Link Clicked");
chrome.app.window.create('index.html', {
bounds: {
width: 800,
height: 600
}
});
});
清单.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)。 开始录制按钮 - 自定义屏幕
- 一旦我在这个按钮上计时,它就会显示这个谷歌屏幕来选择我想要记录的内容: 谷歌的选择媒体提示
- 然后我开始使用这个屏幕。
我想要实现的目标:绕过这个谷歌生成的屏幕来选择要录制的媒体的方法。我想在我的代码中传递媒体类型,并在单击第一个“开始录制”按钮时,我希望它开始录制我在代码中传递的类型,而不是向我显示选择媒体提示。
有可能这样做吗?