当使用createMediaElementSource时,Web音频分析器返回零

当使用createMediaElementSource时,Web音频分析器返回零

问题描述:

我想分析一个来自url的实时音频流。当使用createMediaElementSource时,Web音频分析器返回零

我已经测试我的代码以麦克风输入和它运作良好,但是当我改变

createMediaStreamSource(micStream) 

var streamURL = new Audio(['http://urlOnRemoteServer']) 
createMediaStreamSource(streamURL) 

然后getByteFrequencyData刚刚返回零的阵列(带麦克风输入,它返回的真实数据而不是零)。

它看起来像firefox有一个同源策略,所以我将我的代码移动到一个Web服务器,并使用临时音频文件,但是这在Firefox和Chrome上产生相同的结果,所以我认为这不是做用浏览器支持...

例的jsfiddle:https://jsfiddle.net/j68fhz9x/

我使用的是Firefox/Chrome浏览器在Debian Linux上提前

感谢

UPDATE

在调查CORS后,我尝试在本地运行应用程序,但是即使我在本地计算机上同时存在脚本和音频文件,问题仍然存在。

+0

将源连接到主输出时会发生什么?你听到什么声音? – reg4in

+0

另外,你可以提供一个小提琴或类似的? – reg4in

+0

小提琴现在包含在答案 – Slidon

您需要为Firefox和Chrome使用相同的原始文件或CORS。

+0

我真的希望浏览器供应商能够像XHR一样执行相同的操作,向控制台输出一些错误/警告,至少开发人员有一些暗示为什么他们的音频无声以及如何解决这个问题。 – idbehold

+1

至少在Chrome 45中,现在当你遇到这个问题时,它现在会输出以下内容到控制台:“由于CORE访问限制”AUDIO_URL“,MediaElementAudioSource输出零。”但是Firefox 40在控制台中仍然没有任何帮助。 – idbehold

+0

我已经看过CORS的请求,但如果URL作为字符串参数传递,我该如何做?例如新的音频([“cors_url_request”]) – Slidon