【发布时间】:2017-01-27 07:27:01
【问题描述】:
我正在尝试使用chrome.desktopCapture.chooseDesktopMedia API 来从扩展窗口捕获音频。
我正在从 popup.js 页面发送捕获请求。
清单:
{
"background": {
"scripts": [ "background.js" ]
},
"browser_action": {
"default_icon": "style/icons/icon16.png",
"default_title": "__MSG_name__"
},
"default_locale": "en",
"description": "__MSG_description__",
"icons": {
"128": "style/icons/icon128.png"
},
"manifest_version": 2,
"name": "__MSG_extName__",
"permissions": ["activeTab","desktopCapture"],
"offline_enabled": true,
"short_name": "__MSG_short__",
"version": "1.0.9"
}
功能:
chrome.desktopCapture.chooseDesktopMedia(["window"], function (streamId) {
var audioStream = navigator.mediaDevices.getUserMedia({
audio: true,
chromeMediaSource: 'desktop',
chromeMediaSourceId: streamId
});
audioStream.then(function (mediaStream) {...}
我尝试过使用不同的参数,但每当我省略:audio:true,我都会得到:
无法在“MediaDevices”上执行“getUserMedia”:至少其中之一 必须请求音频和视频(…)。
API 中没有出现以下代码,但我在这里阅读并尝试过,之前的错误也适用于它:
audio: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: streamId
}
}
当我使用audio:true 时,它会记录麦克风,即使我得到源窗口选择对话框。
我做错了什么?
【问题讨论】:
-
似乎不支持录制窗口音频,仅适用于选项卡和屏幕。您还需要在捕获类型数组中传递“音频”。
-
@DanielHerr 谢谢,我添加“audio”参数后,“screen”参数会记录系统输出吗?另外,强制参数是否正确?
-
查看此示例的来源:chrome.google.com/webstore/detail/…
-
@DanielHerr 我会的,再次感谢!
-
查看该来源,
["window"]是唯一不允许音频捕获的选择器。选项卡和屏幕都可以。好奇。
标签: google-chrome-extension web-audio-api