【问题标题】:Chrome extension: Can't make chrome.desktopCapture.chooseDesktopMedia capture window audioChrome 扩展:无法使 chrome.desktopCapture.chooseDesktopMedia 捕获窗口音频
【发布时间】: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


【解决方案1】:

在对代码进行了一些试验之后,在我看来,捕获系统音频的唯一方法是通过视频参数。我无法使用音频参数捕获非麦克风音频。 screen recorder 应用程序也在做同样的事情 - 通过视频录制系统音频。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-05
  • 2013-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多