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()方法只会获取同一个滤波器对象。需要重新设置滤波器类型和参数时,可直接访问当前获取到的滤波器对象的属性。