Chrome扩展程序可监听和捕获流媒体音频

One*_*lmc 15 audio google-chrome audio-streaming google-chrome-extension audio-capture

Chrome扩展程序是否可以从任何浏览器的标签中收听流媒体音频?我想捕获流式音频数据然后进行分析.

谢谢

Sta*_*tan 11

您可以尝试3种方式,但没有一种方法可以提供100%保证以满足您的需求.

在进入更详细的说明之前,我必须注意,Chrome扩展程序无法为每个连接级别提供方便的工具 - 流量捕获所需的级别足够.这是设计的.这就是为什么第一种方式是:

  1. 查看其他浏览器,例如Firefox,它提供用于连接的低级API.已知它们被类似的扩展使用.您可以查看MediaStealer.如果您没有在Chrome上构建系统的特定要求,则应该转移到Firefox.

  2. 您可以开发Chrome扩展程序,该扩展程序通过webRequest API 拦截HTTP请求,分析其标头并提取媒体网址(例如,在HTTP标头中包含audio/mpeg MIME类型).只是为了快速举例,您可以查看以下问题 - 如何更改Chrome中的响应标题.有了网址,您可以强制将适当的媒体下载为文件.它将登陆默认下载文件夹,并可能具有不友好的名称.(我做了这样的扩展,但我没有进一步处理的要求).如果您需要进一步处理此类文件,则在文件夹中监视它们并在单独的程序中运行其他分析可能是一项挑战.

  3. 您可以查看一般的NPAPI插件,特别是它们的流API.我可以想像,你创建,再次,音频/ MPEG MIME类型注册的插件,并接收通过数据NPP_NewStream,NPP_WriteReadyNPP_Write方法.该插件可以包装到Chrome扩展程序中.虽然我制作了NPAPI插件,但我从未使用过这个API,而且我不确定它是否会按预期工作.尽管如此,我在这里提到了这种可能性.这种方法需要一些编码而不是网络编码,这意味着C/C++.NB.自2015年9月起,Chrome不推荐使用NPAPI插件.

考虑到你有一些外部(扩展)"指纹识别服务",这听起来像一个智能数据处理,你可能有兴趣从浏览器构建所有系统.例如,您可能涉及HTTP代理,从而节省媒体传递流量.


Art*_*ure 5

如果您正在编写Chrome扩展程序,则可以使用Chrome tabCapture API录制音频。

chrome.tabCapture.capture({audio: true}, function(stream) {
  var recorder = new MediaRecorder(stream);
  [...]
});
Run Code Online (Sandbox Code Playgroud)

其余部分留给读者练习。MDN有更多有关如何使用MediaRecorder的文档

在2013年提出此问题时,chrome.tabCapture和MediaRecorder都不存在。