Android新增API之AudioEffect中文API与应用实例

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)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjgsj.html