有人可以帮我检查为什么这段代码在 Safari (osx) 中不起作用吗? 正在播放音频,但没有可视化。 我尝试了找到的所有提示,但仍然没有运气。 需要提到的是它在 Chrome (osx) 中运行良好 非常感谢您的帮助
function getDataFromAudio() {
var freqByteData = new Uint8Array(analyser.fftSize / 2);
var timeByteData = new Uint8Array(analyser.fftSize / 2);
analyser.getByteFrequencyData(freqByteData);
analyser.getByteTimeDomainData(timeByteData);
return { f: freqByteData, t: timeByteData }; // array of all 1024 levels
}
更准确地说,可视化和 getByteFrequencyData/getByteTimeDomainData 不适用于互联网广播(Icecast/shoutcast),但适用于单个远程 mp3。
我认为这实际上是 Safari 中的一个错误。
分析器数据全为零,这是存在 CORS 问题时的典型情况。然而,我没有发现 Icecast 流的响应标头有任何问题。
Access-Control-Allow-Origin
设置为 *
,与 GitHub.io 流相同。
我看到的回复中唯一两个有意义的差异:
Content-Type
为 audio/mp3
错误。 (应该是audio/mpeg
。)我怀疑 Safari 正在将流交给其他组件,并且无法使用 MediaElementSourceNode 捕获其输出。