public class EnvironmentalReverb
extends AudioEffect
java.lang.Object | ||
↳ | android.media.audiofx.AudioEffect | |
↳ | android.media.audiofx.EnvironmentalReverb |
房间内产生的声音向多个方向传播。 聆听者首先听到来自声源本身的直接声音。 之后,他或她会听到离开墙壁,天花板和地板声音的离散回声。 随着声波在经过越来越多的反射后到达,单个反射变得难以区分,并且听众听到随时间衰减的连续混响。 混响对建模听众环境至关重要。 它可用于音乐应用程序来模拟在各种环境中播放的音乐,或用于将听众沉浸在游戏环境中的游戏。 EnvironmentalReverb类允许应用程序控制全局混响环境中的每个混响引擎属性,并且更适合于游戏。 对于基本控制,更适合音乐应用,建议使用PresetReverb
类。
应用程序创建一个EnvironmentalReverb对象来实例化并控制音频框架中的混响引擎。
由EnvironmentalReverb实现公开的方法,参数类型和单元直接映射由OpenSL ES 1.0.1规范(http://www.khronos.org/opensles/)为SLEnvironmentalReverbItf接口定义的那些方法,参数类型和单元。 有关更多详细信息,请参阅此规范。
EnvironmentalReverb是一种输出混合辅助效果,应在音频会话0中创建。为了使MediaPlayer或AudioTrack得到这种效果,必须明确附加它,并且必须指定发送级别。 将它附加到MediaPlayer或AudioTrack时,使用getId()方法返回的效果ID来指定此特定效果。
在输出混音中创建混响(音频会话0)需要权限 MODIFY_AUDIO_SETTINGS
有关控制音频效果的更多详细信息,请参见 AudioEffect
类。
Nested classes |
|
---|---|
interface |
EnvironmentalReverb.OnParameterChangeListener OnParameterChangeListener接口定义了一个参数值发生变化时由EnvironmentalReverb调用的方法。 |
class |
EnvironmentalReverb.Settings 设置类重新组合所有环境混响参数。 |
Constants |
|
---|---|
int |
PARAM_DECAY_HF_RATIO 衰变HF比率。 |
int |
PARAM_DECAY_TIME 衰退时间。 |
int |
PARAM_DENSITY 密度。 |
int |
PARAM_DIFFUSION 扩散。 |
int |
PARAM_REFLECTIONS_DELAY 早期反射延迟。 |
int |
PARAM_REFLECTIONS_LEVEL 早期的思考水平。 |
int |
PARAM_REVERB_DELAY 混响延迟。 |
int |
PARAM_REVERB_LEVEL 混响水平。 |
int |
PARAM_ROOM_HF_LEVEL 房间HF水平。 |
int |
PARAM_ROOM_LEVEL 房间的水平。 |
Inherited constants |
---|
From class android.media.audiofx.AudioEffect
|
Inherited fields |
---|
From class android.media.audiofx.AudioEffect
|
Public constructors |
|
---|---|
EnvironmentalReverb(int priority, int audioSession) 类构造函数。 |
Public methods |
|
---|---|
short |
getDecayHFRatio() 获取高频衰减时间(5 kHz时)相对于低频率的比率。 |
int |
getDecayTime() 获取衰减时间。 |
short |
getDensity() 获取密度等级。 |
short |
getDiffusion() 获取扩散级别。 |
EnvironmentalReverb.Settings |
getProperties() 获取环境混响属性。 |
int |
getReflectionsDelay() 获取反射延迟。 |
short |
getReflectionsLevel() 获取早期反射的音量级别。 |
int |
getReverbDelay() 获取混响延迟。 |
short |
getReverbLevel() 获取混响级别。 |
short |
getRoomHFLevel() 获取房间HF级别。 |
short |
getRoomLevel() 获取环境混响效果的主音量级别。 |
void |
setDecayHFRatio(short decayHFRatio) 设置高频衰减时间(5 kHz时)与低频衰减时间的比值。 |
void |
setDecayTime(int decayTime) 设置混响水平衰减60 dB所用的时间。 |
void |
setDensity(short density) 控制后期混响衰减的模态密度。 |
void |
setDiffusion(short diffusion) 设置后期混响衰减中的回声密度。 |
void |
setParameterListener(EnvironmentalReverb.OnParameterChangeListener listener) 注册OnParameterChangeListener接口。 |
void |
setProperties(EnvironmentalReverb.Settings settings) 设置环境混响属性。 |
void |
setReflectionsDelay(int reflectionsDelay) 设置早期反射的延迟时间。 |
void |
setReflectionsLevel(short reflectionsLevel) 设置早期反射的音量级别。 |
void |
setReverbDelay(int reverbDelay) 设置第一个反射和混响之间的时间。 |
void |
setReverbLevel(short reverbLevel) 设置后期混响的音量级别。 |
void |
setRoomHFLevel(short roomHF) 将总体混响效果的低频处的音量水平设置为5 kHz时的音量水平。 |
void |
setRoomLevel(short room) 设置环境混响效果的主音量级别。 |
Inherited methods |
|
---|---|
From class android.media.audiofx.AudioEffect
|
|
From class java.lang.Object
|
int PARAM_DECAY_HF_RATIO
衰变HF比率。 参数ID为EnvironmentalReverb.OnParameterChangeListener
常量值:3(0x00000003)
int PARAM_DECAY_TIME
衰退时间。 OnParameterChangeListener的参数ID
常量值:2(0x00000002)
int PARAM_DENSITY
密度。 OnParameterChangeListener的参数ID
常量值:9(0x00000009)
int PARAM_DIFFUSION
扩散。 OnParameterChangeListener的参数ID
常量值:8(0x00000008)
int PARAM_REFLECTIONS_DELAY
早期反射延迟。 OnParameterChangeListener的参数ID
常量值:5(0x00000005)
int PARAM_REFLECTIONS_LEVEL
早期的思考水平。 OnParameterChangeListener的参数ID
常量值:4(0x00000004)
int PARAM_REVERB_DELAY
混响延迟。 OnParameterChangeListener的参数ID
常量值:7(0x00000007)
int PARAM_REVERB_LEVEL
混响水平。 OnParameterChangeListener的参数ID
常数值:6(0x00000006)
int PARAM_ROOM_HF_LEVEL
房间HF水平。 OnParameterChangeListener的参数ID
常数值:1(0x00000001)
int PARAM_ROOM_LEVEL
房间的水平。 OnParameterChangeListener的参数ID
常量值:0(0x00000000)
EnvironmentalReverb (int priority, int audioSession)
类构造函数。
Parameters | |
---|---|
priority |
int : the priority level requested by the application for controlling the EnvironmentalReverb engine. As the same engine can be shared by several applications, this parameter indicates how much the requesting application needs control of effect parameters. The normal priority is 0, above normal is a positive number, below normal a negative number. |
audioSession |
int : system wide unique audio session identifier. If audioSession is not 0, the EnvironmentalReverb will be attached to the MediaPlayer or AudioTrack in the same audio session. Otherwise, the EnvironmentalReverb will apply to the output mix. As the EnvironmentalReverb is an auxiliary effect it is recommended to instantiate it on audio session 0 and to attach it to the MediaPLayer auxiliary output. |
Throws | |
---|---|
|
java.lang.IllegalArgumentException |
|
java.lang.UnsupportedOperationException |
RuntimeException |
|
IllegalArgumentException |
|
UnsupportedOperationException |
short getDecayHFRatio ()
获取高频衰减时间(5 kHz时)相对于低频率的比率。
Returns | |
---|---|
short |
the decay HF ration. See setDecayHFRatio(short) for units. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
int getDecayTime ()
获取衰减时间。
Returns | |
---|---|
int |
the decay time in milliseconds. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getDensity ()
获取密度等级。
Returns | |
---|---|
short |
the density level. See setDiffusion(short) for units. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getDiffusion ()
获取扩散级别。
Returns | |
---|---|
short |
the diffusion level. See setDiffusion(short) for units. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
EnvironmentalReverb.Settings getProperties ()
获取环境混响属性。 当应用程序必须保存当前混响设置的快照时,此方法非常有用。
Returns | |
---|---|
EnvironmentalReverb.Settings |
an EnvironmentalReverb.Settings object containing all current parameters values |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
int getReflectionsDelay ()
获取反射延迟。
Returns | |
---|---|
int |
the early reflections delay in milliseconds. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getReflectionsLevel ()
获取早期反射的音量级别。
Returns | |
---|---|
short |
the early reflections level in millibels. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
int getReverbDelay ()
获取混响延迟。
Returns | |
---|---|
int |
the reverb delay in milliseconds. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getReverbLevel ()
获取混响级别。
Returns | |
---|---|
short |
the reverb level in millibels. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getRoomHFLevel ()
获取房间HF级别。
Returns | |
---|---|
short |
the room HF level in millibels. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
short getRoomLevel ()
获取环境混响效果的主音量级别。
Returns | |
---|---|
short |
the room level in millibels. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setDecayHFRatio (short decayHFRatio)
设置高频衰减时间(5 kHz时)与低频衰减时间的比值。
Parameters | |
---|---|
decayHFRatio |
short : high frequency decay ratio using a permille scale. The valid range is [100, 2000]. A ratio of 1000 indicates that all frequencies decay at the same rate. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setDecayTime (int decayTime)
设置混响水平衰减60 dB所用的时间。
Parameters | |
---|---|
decayTime |
int : decay time in milliseconds. The valid range is [100, 20000]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setDensity (short density)
控制后期混响衰减的模态密度。
该比例应近似地映射到混响中感知到的变化。 较低的密度会产生空心声音,可用于模拟浴室等小型混响空间。
Parameters | |
---|---|
density |
short : density specified using a permille scale. The valid range is [0, 1000]. A value of 1000 o/oo indicates a natural sounding reverberation. Values below this level produce a more colored effect. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setDiffusion (short diffusion)
设置后期混响衰减中的回声密度。
该比例应近似地映射到混响中感知到的变化。
Parameters | |
---|---|
diffusion |
short : diffusion specified using a permille scale. The diffusion valid range is [0, 1000]. A value of 1000 o/oo indicates a smooth reverberation decay. Values below this level give a more grainy character. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setParameterListener (EnvironmentalReverb.OnParameterChangeListener listener)
注册OnParameterChangeListener接口。
Parameters | |
---|---|
listener |
EnvironmentalReverb.OnParameterChangeListener : OnParameterChangeListener interface registered |
void setProperties (EnvironmentalReverb.Settings settings)
设置环境混响属性。 当必须从先前的备份应用混响设置时,此方法非常有用。
Parameters | |
---|---|
settings |
EnvironmentalReverb.Settings : a EnvironmentalReverb.Settings object containing the properties to apply |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setReflectionsDelay (int reflectionsDelay)
设置早期反射的延迟时间。
这种方法设定了听到直接路径和听到第一个反射的时间。
Parameters | |
---|---|
reflectionsDelay |
int : reflections delay in milliseconds. The valid range is [0, 300]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setReflectionsLevel (short reflectionsLevel)
设置早期反射的音量级别。
此级别与整体房间级别(使用 setRoomLevel(short)
设置)相结合。
Parameters | |
---|---|
reflectionsLevel |
short : reflection level in millibels. The valid range is [-9000, 1000]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setReverbDelay (int reverbDelay)
设置第一个反射和混响之间的时间。
Parameters | |
---|---|
reverbDelay |
int : reverb delay in milliseconds. The valid range is [0, 100]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setReverbLevel (short reverbLevel)
设置后期混响的音量级别。
此级别与整体房间级别(使用 setRoomLevel(short)
设置)相结合。
Parameters | |
---|---|
reverbLevel |
short : reverb level in millibels. The valid range is [-9000, 2000]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setRoomHFLevel (short roomHF)
将总体混响效果的低频处的音量水平设置为5 kHz时的音量水平。
这将控制一个低通滤波器,这将降低高频的水平。
Parameters | |
---|---|
roomHF |
short : high frequency attenuation level in millibels. The valid range is [-9000, 0]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setRoomLevel (short room)
设置环境混响效果的主音量级别。
Parameters | |
---|---|
room |
short : room level in millibels. The valid range is [-9000, 0]. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |