BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

Audio.getFilter()

Audio.getFilter()是一个在three.js中的方法,可以为音频对象获取滤镜。滤镜是一种音频信号处理技术,可以对声音进行一定的调整和变化,实现一定的音频效果。使用滤镜可以使音频更加清晰、更有层次感、更具吸引力。

语法

audio.getFilter(type);

参数

  • type(可选参数): 滤波器的类型。可选值有:lowpass(低通滤波器)、highpass(高通滤波器)、bandpass(带通滤波器)、lowshelf(低架滤波器)、highshelf(高架滤波器)和peaking(峰值滤波器)。

返回值

返回一个滤波器对象。

示例

//创建一个音频对象
var audio = new THREE.Audio(listener);

//加载音频文件
var audioLoader = new THREE.AudioLoader();
audioLoader.load( 'audio.mp3', function( buffer ) {
    audio.setBuffer( buffer );
    audio.setLoop( true );
    audio.setVolume( 0.5 );
    audio.play();
});

//获取低通滤波器
var lowpassFilter = audio.getFilter('lowpass');
if (lowpassFilter) {
    lowpassFilter.type = 'lowpass';
    lowpassFilter.frequency.value = 1000;
    lowpassFilter.Q.value = 0;
}

上面的示例中,先创建了一个音频对象,然后加载一个音频文件,在音频播放的过程中,通过调用audio.getFilter('lowpass')方法,获取了一个低通滤波器。然后可以通过lowpassFilter对象的属性来调整滤波器的参数,从而实现低通滤波的效果。

注意事项

  • Audio.getFilter()方法只能在音频对象开始播放后调用。
  • 不同的滤波器类型对应的参数有所不同,具体可参考相关文档。
  • 同一时间只能存在一个滤波器对象,多次调用Audio.getFilter()方法只会获取同一个滤波器对象。需要重新设置滤波器类型和参数时,可直接访问当前获取到的滤波器对象的属性。