在Android2.3中增加了对音频混响的撑持,这些API包罗在android.media.audiofx包中。
一、概述
AudioEffect是android audio framework(android 音频框架)供给的音频效果控制的基类。开发者不能直接使用此类,应该使用它的派生类。 下面列出它的派生类。
Equalizer
Virtualizer
BassBoost
PresetReverb
EnvironmentalReverb
当创建AudioEffect时,如果音频效果应用到一个具体的AudioTrack和MediaPlayer的实例,应用措施必需指定该实例的音频session ID,如果要应用Global音频输出混响的效果必需制定Session 0。
要创建音频输出混响(音频 Session 0)要求要有 MODIFY_AUDIO_SETTINGS权限。
如果要创建的效果在audio framework不存在,那么直接创建该效果,如果已经存在那么直接使用此效果。如果优先级高的东西要在初级另外东西使用该效果时,那么控制将转移到优先级高的东西上,否则继续勾留在此东西上。在这种情况下,,新的申请将被监听器通知。
二、嵌套类
1.AudioEffect.Descriptor:效果描述符包罗在音频框架内实现某种特定的效果的信息。
2.AudioEffect.OnControlStatusChangeListener:此接口界说了当应用措施的音频效果的控制状态转变时由AudioEffect挪用的要领。
3.AudioEffect.OnEnableStatusChangeListener:此接口界说了当应用措施的音频效果的启用状态转变时由AudioEffect挪用的要领。
三、常量
String ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION *音频效果String ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL 启动一个音频效果控制面板UI。
String ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION 打开音频效果。
int ALREADY_EXISTS 内部操纵状态。
int CONTENT_TYPE_GAME 当播放内容的类型是游戏音频时EXTRA_CONTENT_TYPE的值。
int CONTENT_TYPE_MOVIE 当播放内容的类型是影戏时EXTRA_CONTENT_TYPE的值。
int CONTENT_TYPE_MUSIC 当播放内容的类型是音乐时EXTRA_CONTENT_TYPE的值。
int CONTENT_TYPE_VOICE 当播放内容的类型是话音时EXTRA_CONTENT_TYPE的值。
String EFFECT_AUXILIARY Effect connection mode 是auxiliary
String EFFECT_INSERT Effect connection mode 是insert.
int ERROR 指示操纵错误。
int ERROR_BAD_VALUE 指示由于错误的参数导致的操纵掉败。
int ERROR_DEAD_OBJECT 指示由于已*的长途东西导致的操纵掉败。
int ERROR_INVALID_OPERATION 指示由于错误的请求状态导致的操纵掉败。
int ERROR_NO_INIT 指示由于错误的东西初始化导致的操纵掉败。
int ERROR_NO_MEMORY 指示由于内存不敷导致的操纵掉败。
String EXTRA_AUDIO_SESSION 包罗使用效果的音频会话ID。
String EXTRA_CONTENT_TYPE 指示应用措施播放内容的类型。
String EXTRA_PACKAGE_NAME 包罗挪用应用措施的包名。
int SUCCESS 操纵告成。
四、公有要领
AudioEffect.Descriptor getDescriptor()
获取效果描述符。
boolean getEnabled()
返回效果的启用状态。
int getId()
返回效果的标识符
boolean hasControl()
查抄该AudioEffect 东西是否拥有效果引擎的控制。如果有,则返回true。
static Descriptor[] queryEffects()
盘问平台上的所有有效的音频效果。
void release()
释放本地AudioEffect资源。
void setControlStatusListener(AudioEffect.OnControlStatusChangeListener listener)