我正在构建一个chrome扩展来捕捉屏幕记录并编辑它们,我尝试使用chrome标签捕捉API来获取内容脚本或后台脚本中的视频流,但我收到了一个未定义的错误。我使用的是manifest版本3,我在manifest中设置了标签捕捉权限。这里是一个尝试在内容脚本中运行的示例。我还尝试将消息发送到popup.js,但一旦弹出窗口关闭,记录停止并返回错误:-
content-script.js
var recordButton = document.createElement("button");
recordButton.innerHTML = "Record";
chrome.runtime.sendMessage({message: "access_tabCapture_API"});
// Add an event listener to the record button to start recording
recordButton.addEventListener("click", function() {
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request.message === "stream_object") {
// Use the stream object received from the background script
//var stream = request.stream;
if(request.stream != undefined || request.stream != null) {
console.log('yes, its working')
} else {
console.log('nothing there')
}
}
});
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request.message === "access_tabCapture_API") {
chrome.tabCapture.capture({audio: true, video: true}, function(stream) {
// Once the tabCapture API is accessed, send the stream object back to the content script
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {message: "stream_object", stream: stream});
});
});
}
});
我收到错误:-事件处理程序中的错误:TypeError:无法读取chrome中未定义的属性(阅读“capture”)-......
1条答案
按热度按时间yvgpqqbh1#
下面是一个使用
chrome.tabCapture.getMediaStreamId
的示例。manifest.json
popup.html
popup.js
matches.js