首页 > 解决方案 > 在three.js中手动平移音频

问题描述

我正在查看AudioPositionalAudio对象,但找不到手动向左或向右平移音频的方法。将声音分配给 PositionalAudio 对象会在里面给我一个平移器对象,但我找不到可以进行的任何自定义调整来更改平移。

在此处输入图像描述

我可以根据动画循环中的距离手动设置音量,在我想要调整的声音上使用 setVolume,但我找不到任何平移。

请注意,您可以看到我尝试更改 position.x 属性,但没有效果。

标签: audiothree.jspanning

解决方案


问题PositionalAudio是它会根据其位置自动向左/向右平移到AudioListener. AudioListener通常附加到相机上,以便观看者获得 3D 位置音频的效果:

  • 如果音频源位于听者的左侧,它将从左侧扬声器中发出。
  • 中:两个扬声器
  • 右:右扬声器

您可以在此演示中看到这种自动平移的作用。(我不确定为什么这个演示会同时用 4 个音频源淹没您。我建议您将除第二个球体之外的所有音频源静音,然后在它周围移动以查看平移是如何自动发生的)

允许平移控制会破坏 3D 位置音频的目的。如果你想覆盖平移,我想你可以应用一个过滤器AudioListener.setFilter()并传入 a StereoPannerNode,但就像我说的那样,这会破坏 3D 音频的目的。


推荐阅读