0

我正在使用Three.JS开发 3D 流式收音机,我将音乐作为 PeerConnection 发送给我的客户,并附加 aTHREE.AudioAnalyser()以显示根据频率移动的 3D 条。

声音在所有平台上都运行良好,但THREE.AudioAnalyser()流类型的输入源只能在 Chrome 上运行,Safari 根本无法运行:皱眉:

var listener = new THREE.AudioListener();
var audio = new THREE.Audio( listener );
audio.setMediaStreamSource( stream );
audioAnalyser = new THREE.AudioAnalyser( audio, 128 );

function loop(){
    console.log(audioAnalyser.getFrequencyData());
}

该函数console.log()loop()应该包含一个整数数组,在 Chrome 上都很好,Safari 日志[0,0,0,0,0,0,0,0]

什么可能导致此问题?它似乎在任何地方都可以工作,但不能在 Safari 上工作,而且它似乎只在源是流时才会失败。

4

1 回答 1

0

不是 100% 确定,但您可能希望将 的输出连接AnalyserNode到目标节点。您可能希望GainNode在两者之间保持增益为 0,以防万一您真的不希望播放来自 的音频AnalyserNode

于 2020-09-23T14:50:05.847 回答