在 Chrome 中,chrome.desktopCapture https://developer.chrome.com/extensions/desktopCapture可以使用扩展 API 来捕获屏幕,这包括系统音频 https://code.google.com/p/chromium/issues/detail?id=223639 (but 仅适用于 Windows 和 Chrome 操作系统 https://chromium.googlesource.com/chromium/src/+/90e92609b6718c62c551f8aca5824dd0071c2d52/chrome/browser/media/desktop_capture_access_handler.cc#165 and 没有针对 OS X 或 Linux 的计划 https://code.google.com/p/chromium/issues/detail?id=223639#c29). E.g.
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
to 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1156472