Google chrome extension 使用TabCapture API捕获选项卡时,选项卡的音频消失

Google chrome extension 使用TabCapture API捕获选项卡时,选项卡的音频消失,google-chrome-extension,audio-recording,Google Chrome Extension,Audio Recording,我正在测试一个Tab Capture API来记录包含文本到语音flash对象的网页的音频。录制网页时,播放音频消失,但在录制的文件中听起来正常 我正在使用以下MediaStream约束来录制视频和音频 var MediaStreamConstraint = { audio: true, video: true, videoConstraints: { mandatory: {

我正在测试一个Tab Capture API来记录包含文本到语音flash对象的网页的音频。录制网页时,播放音频消失,但在录制的文件中听起来正常

我正在使用以下MediaStream约束来录制视频和音频

var MediaStreamConstraint = {
            audio: true, 
            video: true, 
            videoConstraints: {
                mandatory: {
                    chromeMediaSource: 'tab',
                        minWidth: 640,
                        maxWidth: 640,
                        minHeight: 420,
                        maxHeight: 420

                }
            }
};

我是否缺少流约束中的某些内容,或者该问题有其他解决方案?

请记住在清单文件中授予权限

"permissions": [
    "tabCapture",
    "activeTab",
    ...
  ],  
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: 640,
        maxWidth: 640,
        minHeight: 420,
        maxHeight: 420
    }
}
};

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

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

如果不是这样,请您附加更多相关代码,因为您附加的代码对我来说很好。

仅添加下一行

window.audio = document.createElement("audio");
window.audio.src = window.URL.createObjectURL(stream);
window.audio.play()

在背景脚本的handleCapture函数中,尝试以下操作以继续播放:

var audio=新音频(window.URL.createObjectURL(stream));

音频播放()正如其他人所说,在回调中播放捕获的媒体流中的音频是有效的:

chrome.tabCapture.capture(MediaStreamConstraint, gotStream);

function gotStream(stream) {
  window.audio = document.createElement("audio");
  window.audio.src = window.URL.createObjectURL(stream);
  window.audio.play()
}

感谢gui47的回答,我正在使用相同的代码在清单文件中以完全相同的权限捕获音频和视频,但问题是一旦调用捕获方法,应用程序的实际播放音频就会消失。。当有人将音频静音时,我听到的是
as
null
你知道这是怎么回事吗?上面提到的所有权限都存在相同的问题。。。您已经解决了这个问题吗?仅添加这些行肯定不会帮助任何人(什么是
stream
?)stream是MediaStreamFrom的对象?同样,您说“只添加下一行”,它们本身只会产生一个错误。不再接受媒体流对象并导致
TypeError:未能在“URL”上执行“createObjectURL”:未找到与提供的签名匹配的函数。
我们应改用
audio.srcObject=stream