Google chrome extension 使用Tabcapture API捕获音频和视频

Google chrome extension 使用Tabcapture API捕获音频和视频,google-chrome-extension,webrtc,Google Chrome Extension,Webrtc,我正在构建一个chrome扩展,它可以记录特定tab会话的会话,包括音频和视频,为此我使用tabcapture api获取tab会话的流,然后使用MRecordRTC记录该流 ,我不想将音频和视频作为一个单独的文件保存在本地机器上。视频文件还可以,但音频文件失真很大,听起来像一个冒泡的声音。下面是manifest.json和我用来记录会话的background.js文件的一部分 manifest.json background.js 测试tabcapture api时的其他一些发现 捕获选项卡时

我正在构建一个chrome扩展,它可以记录特定tab会话的会话,包括音频和视频,为此我使用tabcapture api获取tab会话的流,然后使用MRecordRTC记录该流 ,我不想将音频和视频作为一个单独的文件保存在本地机器上。视频文件还可以,但音频文件失真很大,听起来像一个冒泡的声音。下面是manifest.json和我用来记录会话的background.js文件的一部分

manifest.json

background.js

测试tabcapture api时的其他一些发现

捕获选项卡时,无法听到嵌入式音频。 如果仅使用tabcapture api录制音频,则保存的文件不会失真,声音正常

我的manifest.jon文件中是否缺少某些内容,或者我没有遵循tabcapture api的正确顺序


清单文件看起来不错,你检查过这个项目的指导吗?是的,我看过这个项目,但它不是在测试音频捕获,试着以低于高清的分辨率录制,比如640x480。这可能是一个负担issue@jesup您的测试正常,但视频质量变得很差,有没有解决方案可以让音频和视频都达到良好的质量?这意味着我是对的-这是一个负载问题。在高帧率下进行实时全高清编码并不容易。尝试降低帧率。
{
  "manifest_version": 2,  

  "name": "tabcap",
  "description": "This extension captures the session of selected tab.",
  "version": "1.0",

  "permissions": [
    "tabCapture",
    "activeTab",
    "http://localhost:1615/*"
  ],  

  "browser_action": {
    "default_icon": "icon42.png",
    "default_icon": "icon64.png"
    },

  "content_scripts": [
    {
      "matches": ["http://localhost:1615/*"],
      "js": ["jquery-1.6.1.min.js","myscript.js",]
    }
  ],

  "background":{
  "scripts": ["jquery-1.6.1.min.js","recordrtc.js","background.js"]
 }

}
var recorder = new MRecordRTC();
function handleCapture(stream) {
recorder.addStream(stream);
recorder.mediaType = { video: true, audio: true };
recorder.startRecording();
}

var MediaStreamConstraint = {
audio: true,
video: true,
videoConstraints: {
    mandatory: {
        chromeMediaSource: 'tab',
        minWidth: 1920,
        maxWidth: 1920,
        minHeight: 1080,
        maxHeight: 1080
    }
}
};

function captureCurrentTab() {
chrome.tabCapture.capture(MediaStreamConstraint, handleCapture);
}

function stopCapturing() {
// stops the recording and save audio and video     
}