【问题标题】:Capture system sound from browser从浏览器捕获系统声音
【发布时间】:2016-03-18 01:08:21
【问题描述】:

我正在尝试构建一个从 webrtc 调用捕获本地和远程音频的 Web 应用程序,但我无法录制远程音频(使用 recordRTC)。 我想知道我是否可以通过某种方式捕捉系统声音。

有没有办法从浏览器捕获系统声音(不仅仅是麦克风)。也许是一个扩展?

【问题讨论】:

标签: google-chrome firefox google-chrome-extension firefox-addon


【解决方案1】:

在 Chrome 中,chrome.desktopCapture 扩展 API 可用于捕获屏幕,其中includes system audio(但only on Windows and Chrome OSwithout plans for OS X or Linux)。例如

chrome.desktopCapture.chooseDesktopMedia([
    'screen', 'window' // ('tab' is not supported; use chrome.tabCapture instead)
], function(streamId) {
    navigator.webkitGetUserMedia({
        audio: {
            mandatory: {
                chromeMediaSource: 'system',
                chromeMediaSourceId: streamId
            }
        },
        video: false, // We only want audio for now.
    }, function(stream) {
        // Do what you want with this MediaStream.
    }, function(error) {
        // Handle error
    });
});

我不确定 Firefox 是否可以捕获系统声音,但至少它能够捕获一些输出(选项卡/窗口/浏览器/操作系统?)。 首先,您需要访问about:config 并将media.getusermedia.audiocapture.enabled 设置为true(这可以通过Firefox 插件自动完成)。然后可以按如下方式捕获流:

navigator.mozGetUserMedia({
    audio: {
        mediaSource: 'audioCapture'
    },
    video: false, // Just being explicit, we only want audio for now
}, function(stream) {
    // Do what you want with this MediaStream.
}, function(error) {
    // Handle error
});

这是在 Firefox 42 中实现的,地址为 https://bugzilla.mozilla.org/show_bug.cgi?id=1156472

【讨论】:

  • 我试过了,但结果流中没有音轨。我在 Ubuntu 14.04 上使用 Google Chrome 47。跟浏览器版本或操作系统有关系吗?
  • @VictorCanezindeOliveira desktopCapture 目前仅适用于 Windows 和 Chrome 操作系统。我已经编辑了我的答案。
  • 无法在 Firefox 上运行,我正在获取音频流,但录制时没有任何反应
  • @RobW 我们正在使用 Electron “它是一个使用铬的桌面应用程序开发工具,这意味着 Electron 在某种程度上类似于 Chrome”。所以这个想法是当有人使用我们的 Electron 应用程序时。用户应该能够记录他正在与之交谈的人的声音。他们使用哪个应用程序来传达“Skype、缩放、..”并捕捉他的声音并使用该声音并不重要。你认为 desktopCapture 能胜任吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多