google-chrome - 从浏览器捕获系统声音

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

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

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

最佳答案

在 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.enabledtrue (这可以通过 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

关于google-chrome - 从浏览器捕获系统声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235077/

相关文章:

google-chrome - Chrome Google-Cast 发送器未收到原始媒体负载的媒体状态更新

javascript - XUL MenuItem 在动态添加弹出窗口后消失

javascript - 在 Chrome 中启用音频的自动播放策略标志

javascript - 如何用js将<svg>标签改为<img>标签?

google-chrome - 如何使用元标记防止在谷歌浏览器中缓存

html - 极其简单的 flexbox 布局,溢出 : hidden -- vertical mis-alignment in Firefox

css - 填充过渡和固定大小的 Chrome 问题

internet-explorer - 在 IE6、IE7、IE8 和 Firefox 上尝试将三个 div 放在同一行上,一个对着另一个,居中

google-chrome - Firefox DevTools 有哪些 Chrome DevTools 没有的独特功能,反之亦然?

google-chrome-extension - 如何为 chrome 扩展正确写入新的 "event page"?