Javascript 使用屏幕Chrome扩展捕获音频

Javascript 使用屏幕Chrome扩展捕获音频,javascript,google-chrome-extension,screen,html5-audio,Javascript,Google Chrome Extension,Screen,Html5 Audio,在chrome extension中,我使用了下面的行来捕获屏幕 chrome.desktopCapture.chooseDesktopMedia 通过这个屏幕(桌面)流工作正常,但是当我尝试使用 constraints = { audio: { mandatory: { chromeMediaSource: 'system', chromeMediaSourceId: audioSource, } }, video: {

在chrome extension中,我使用了下面的行来捕获屏幕

chrome.desktopCapture.chooseDesktopMedia
通过这个屏幕(桌面)流工作正常,但是当我尝试使用

constraints = {
   audio: {
     mandatory: {
       chromeMediaSource: 'system',
       chromeMediaSourceId: audioSource,
     }
   },
   video: {
     mandatory: {
       chromeMediaSource: 'desktop',
       chromeMediaSourceId: event.data.sourceId,
       maxWidth: window.screen.width,
       maxHeight: window.screen.height,
       maxFrameRate: 3
     },
     optional: [
       { googLeakyBucket: true },
       { googTemporalLayeredScreencast: true }
     ]
   }
 };
注意:已经测试了
事件.data.sourceId
以代替音频块中的
音频源

音频不工作,我可以从流中看到(在控制台中)音频媒体曲目


您所指的扩展使用平台特定代码(ffmpeg)作为位于_platform_specific/x86-64/video_encoder_main-x86-64.nexe而非WebRTC/HTML5中的二进制文件


[编辑]以上是在Linux 64位上的

我通过在
数据源
数组中添加
音频
修复了这个问题,该数组传递到
chrome.desktopCapture.chooseDesktopMedia


i、 e.
chrome.desktopCapture.chooseDesktopMedia(['screen','audio'],function(id){…})

我很确定这不是真的。您提到的二进制文件是一个(高效的)编码器-但是,看到沙盒有多重,我怀疑它是否能够访问屏幕/音频捕获。消息来源确实提到了WebRTC。伙计们,你们找到这个问题的答案了吗?无法使音频工作。