使用 Three.js PositionalAudio 制作锥体声音

EJW*_*EJW 5 javascript audio three.js

我正在使用 PositionalAudio 创建一系列声音:

 var newVoice = new THREE.PositionalAudio(listener);
 newVoice.setBuffer(buffer);
 newVoice.setRefDistance(20);
 newVoice.autoplay = true;
 newVoice.setLoop(true);
 voices.push(newVoice);
Run Code Online (Sandbox Code Playgroud)

我已将这些声音附加到立方体上,但我只想让用户以 30 度直角面对立方体时听到声音。30 度圆锥体之外的任何物体都应该保持安静。

在这里看到了文档,但唯一有效的参数是我使用的“setRefDistance”。其他的不起作用。我用的是r74

有任何想法吗?要点在这里:https://gist.github.com/evejweinberg/949e297c34177199386f945549a45c06

Fal*_*ele 3

Three.js Audio 是网络音频 API 的包装器。您可以将所有设置应用到平移器,可使用以下命令使用getOutput()

var sound = new THREE.PositionalAudio( listener );
var panner = sound.getOutput();
panner.coneInnerAngle = innerAngleInDegrees;
panner.coneOuterAngle = outerAngleInDegrees;
panner.coneOuterGain = outerGainFactor;
Run Code Online (Sandbox Code Playgroud)

coneInnerAngle:定向音频源的参数,这是一个角度,在该角度内不会降低音量。默认值为 360。

coneOuterAngle:定向音频源的参数,这是一个角度,在该角度之外,音量将减小到 coneOuterGain 的恒定值。默认值为 360。

ConeOuterGain:定向音频源的参数,这是在coneOuterAngle 之外的音量减小量。默认值为 0。

资料来源: