public class PresetReverb
extends AudioEffect
java.lang.Object | ||
↳ | android.media.audiofx.AudioEffect | |
↳ | android.media.audiofx.PresetReverb |
房间内产生的声音向多个方向传播。 聆听者首先听到来自声源本身的直接声音。 之后,他或她会听到离开墙壁,天花板和地板声音的离散回声。 随着声波在经过越来越多的反射后到达,单个反射变得难以区分,并且听众听到随时间衰减的连续混响。 混响对建模听众环境至关重要。 它可用于音乐应用程序来模拟在各种环境中播放的音乐,或用于将听众沉浸在游戏环境中的游戏。 PresetReverb类允许应用程序使用混响预设来配置全局混响。 这主要用于在音乐回放环境中添加一些混响。 建议需要控制更先进的环境混响的应用程序使用EnvironmentalReverb
类。
应用程序创建一个PresetReverb对象来实例化并控制音频框架中的混响引擎。
PresetReverb实现公开的方法,参数类型和单位直接映射到SLPresetReverbItf接口的OpenSL ES 1.0.1规范(http://www.khronos.org/opensles/)定义的方法,参数类型和单位。 有关更多详细信息,请参阅此规范。
PresetReverb是一种输出混合辅助效果,应在音频会话0中创建。为了使MediaPlayer或AudioTrack得到此效果,必须将其明确地附加到它上面,并且必须指定发送级别。 将它附加到MediaPlayer或AudioTrack时,使用getId()方法返回的效果ID来指定此特定效果。
在输出混音(音频会话0)上创建混响需要权限 MODIFY_AUDIO_SETTINGS
有关控制音频效果的更多详细信息,请参见 AudioEffect
类。
Nested classes |
|
---|---|
interface |
PresetReverb.OnParameterChangeListener OnParameterChangeListener接口定义了当参数值发生变化时由PresetReverb调用的方法。 |
class |
PresetReverb.Settings 设置类重新组合所有预设混响参数。 |
Constants |
|
---|---|
int |
PARAM_PRESET 预置。 |
short |
PRESET_LARGEHALL 代表适合全管弦乐队的大型礼堂的混响预设 |
short |
PRESET_LARGEROOM 代表适合现场表演的大型房间的混响预设 |
short |
PRESET_MEDIUMHALL 表示中等大小的混响预设 |
short |
PRESET_MEDIUMROOM 代表长度不超过10米的中型房间的混响预设 |
short |
PRESET_NONE 没有混响或反射 |
short |
PRESET_PLATE 表示混合传统平板混响的混响预设 |
short |
PRESET_SMALLROOM 表示小于5米长的小房间的混响预设 |
Inherited constants |
---|
From class android.media.audiofx.AudioEffect
|
Inherited fields |
---|
From class android.media.audiofx.AudioEffect
|
Public constructors |
|
---|---|
PresetReverb(int priority, int audioSession) 类构造函数。 |
Public methods |
|
---|---|
short |
getPreset() 获取当前混响预设。 |
PresetReverb.Settings |
getProperties() 获取预设的混响属性。 |
void |
setParameterListener(PresetReverb.OnParameterChangeListener listener) 注册OnParameterChangeListener接口。 |
void |
setPreset(short preset) 在混响中启用预设。 |
void |
setProperties(PresetReverb.Settings settings) 设置预设的混响属性。 |
Inherited methods |
|
---|---|
From class android.media.audiofx.AudioEffect
|
|
From class java.lang.Object
|
int PARAM_PRESET
预置。 参数ID为PresetReverb.OnParameterChangeListener
常量值:0(0x00000000)
short PRESET_MEDIUMROOM
代表长度不超过10米的中型房间的混响预设
常量值:2(0x00000002)
PresetReverb (int priority, int audioSession)
类构造函数。
Parameters | |
---|---|
priority |
int : the priority level requested by the application for controlling the PresetReverb 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 PresetReverb will be attached to the MediaPlayer or AudioTrack in the same audio session. Otherwise, the PresetReverb will apply to the output mix. As the PresetReverb 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 getPreset ()
获取当前混响预设。
Returns | |
---|---|
short |
the preset that is set at the moment. |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
PresetReverb.Settings getProperties ()
获取预设的混响属性。 当应用程序必须保存当前预设混响设置的快照时,此方法非常有用。
Returns | |
---|---|
PresetReverb.Settings |
a PresetReverb.Settings object containing all current parameters values |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setParameterListener (PresetReverb.OnParameterChangeListener listener)
注册OnParameterChangeListener接口。
Parameters | |
---|---|
listener |
PresetReverb.OnParameterChangeListener : OnParameterChangeListener interface registered |
void setPreset (short preset)
在混响中启用预设。
混响PRESET_NONE禁用当前输出中的任何混响,但不释放与混响相关的资源。 对于应用程序发信号给实现释放资源,它必须调用release()方法。
Parameters | |
---|---|
preset |
short : this must be one of the the preset constants defined in this class. e.g. PRESET_SMALLROOM |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |
void setProperties (PresetReverb.Settings settings)
设置预设的混响属性。 当必须从先前的备份应用预设混响设置时,此方法很有用。
Parameters | |
---|---|
settings |
PresetReverb.Settings : a PresetReverb.Settings object containing the properties to apply |
Throws | |
---|---|
|
IllegalStateException |
|
IllegalArgumentException |
UnsupportedOperationException |
|
IllegalStateException |
|
IllegalArgumentException |