从浏览器捕获系统声音

Vic*_*ira 6 firefox google-chrome firefox-addon google-chrome-extension

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

有没有办法从浏览器捕获系统声音(不仅仅是麦克风).也许延期?

Rob*_*b W 6

在 Chrome 中,chrome.desktopCapture扩展 API 可用于捕获屏幕,其中包括系统音频(但仅限于 Windows 和 Chrome 操作系统没有针对 OS X 或 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
    });
});
Run Code Online (Sandbox Code Playgroud)

我不确定 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
});
Run Code Online (Sandbox Code Playgroud)

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