Google chrome Chrome扩展,用于收听和捕获流媒体音频
Chrome扩展是否可以监听来自任何浏览器选项卡的流式音频?我想捕获流式音频数据,然后对其进行分析Google chrome Chrome扩展,用于收听和捕获流媒体音频,google-chrome,audio,google-chrome-extension,audio-streaming,audio-capture,Google Chrome,Audio,Google Chrome Extension,Audio Streaming,Audio Capture,Chrome扩展是否可以监听来自任何浏览器选项卡的流式音频?我想捕获流式音频数据,然后对其进行分析 谢谢您可以尝试三种方法,但都不能提供100%的保证来满足您的需求 在进行更详细的描述之前,我必须注意,Chrome扩展并没有提供方便的工具来处理每个连接级别—足够低的级别,是流捕获所必需的。这是故意的。这就是为什么第一种方式是: 看看其他浏览器,例如Firefox,它为连接提供低级API。已知它们已被类似的扩展使用。你可以看一看。如果您没有在Chrome上构建系统的特定要求,那么您可能应该使用Fi
谢谢您可以尝试三种方法,但都不能提供100%的保证来满足您的需求 在进行更详细的描述之前,我必须注意,Chrome扩展并没有提供方便的工具来处理每个连接级别—足够低的级别,是流捕获所必需的。这是故意的。这就是为什么第一种方式是:
NPP\u NewStream
、NPP\u writerady
和NPP\u Write
方法接收数据。该插件可以包装成一个Chrome扩展。虽然我制作了NPAPI插件,但我从未使用过这个API,我也不确定它是否能像预期的那样工作。不过,我在这里要提到的是,对于完美主义者的这种可能性。这种方法需要一些编码,而不是web编码,即C/C++。注意。NPAPI插件已弃用,自2015年9月以来不受Chrome支持考虑到您考虑了一些外部(扩展)“指纹服务”,这听起来像是一种智能数据处理,您可能有兴趣使用浏览器构建所有系统。例如,您可能需要使用HTTP代理,以防止媒体通过流量。My privoxy有以下日志:
2013-08-28 18:25:27.953 00002f44 Request: api.audioaddict.com/v1/di/listener_sessions.jsonp?_method=POST&callback=_AudioAddict_WP_ListenerSession_create&listener_session%5Bid%5D=null&listener_session%5Bis_premium%5D=false&listener_session%5Bmember_id%5D=null&listener_session%5Bdevice_id%5D=6&listener_session%5Bchannel_id%5D=178&listener_session%5Bstream_set_key%5D=webplayer&_=1377699927926
2013-08-28 18:25:27.969 0000268c Request: api.audioaddict.com/v1/ping.jsonp?callback=_AudioAddict_WP_Ping__ping&_=1377699927928
2013-08-28 18:25:27.985 00002d48 Request: api.audioaddict.com/v1/di/track_history/channel/178.jsonp?callback=_AudioAddict_TrackHistory_Channel&_=1377699927942
2013-08-28 18:25:54.080 00003360 Request: pub7.di.fm/di_progressivepsy_aac?type=.flv
所以我得到了流url并记录了它:
D:\Profiles\user\temp>wget pub7.di.fm/di_progressivepsy_aac?type=.flv
--18:26:32-- http://pub7.di.fm/di_progressivepsy_aac?type=.flv
=> `di_progressivepsy_aac@type=.flv'
Resolving pub7.di.fm... done.
Connecting to pub7.di.fm[67.221.255.50]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [video/x-flv]
[ <=> ] 1,234,151 8.96K/s
D:\Profiles\user\temp>wget pub7.di.fm/di_progressivepsy_aac?type=.flv
--18:26:32-- http://pub7.di.fm/di_progressivepsy_aac?type=.flv
=>`di_progressivepsy_aac@type=.flv'
正在解析pub7.di.fm。。。完成。
连接到pub7.di.fm[67.221.255.50]:80。。。有联系的。
HTTP请求已发送,正在等待响应。。。200行
长度:未指定[视频/x-flv]
[]1234151 8.96K/s
我得到了可以在任何多媒体播放器中复制的文件。使用soundflower的Mac OSX解决方案: 安装soundflower后,它应该作为一个单独的音频设备出现在“声音首选项”(apple>系统首选项>声音)中。将电脑音频切换到2ch选项(立体声,16ch环绕),然后在DAW内,如“audacity”,将音频输入设置为soundflower。现在,声音应该被引导到您的DAW,准备录制
注意:将音频从内部扬声器转移到soundflower后,只有在“soundflowerbed”应用程序实际打开时,您才能听到音频。你知道如果右上任务栏中有一个8条腿的斑点,它是打开的。单击此图标可提供声音花选项。如果您正在编写Chrome扩展,则可以使用录制音频
chrome.tabCapture.capture({audio: true}, function(stream) {
var recorder = new MediaRecorder(stream);
[...]
});
其余部分留给读者作为练习;MDN对如何使用MediaRecorder进行了详细介绍
2013年,当我问这个问题时,chrome.tabCapture和MediaRecorder都不存在。在我的脑海中(最初的谷歌搜索也支持这个问题),我找不到任何方法来做到这一点。这听起来像是一个巨大的安全漏洞,所以我无法想象任何浏览器会急于支持它。你必须听音频吗?你能监视网络请求吗?这适用于任何站点,还是某个特定站点?你是针对所有平台,还是仅仅针对一个平台?我想获取流式音频数据(比如来自在线广播节目)并将其发送到音频指纹服务。理想情况下,它可以在任何网站上运行,我可能会从Chrome开始。如果流式音频附带音频对象,并且不在iframe中,那么你不能用AudioContext对象“抓取”它,例如操纵流。差不多