首页 > 代码库 > Android开发之AudioManager(音频管理器)详解

Android开发之AudioManager(音频管理器)详解

AudioManager简介:


AudioManager类提供了访问音量和振铃器mode控制。使用Context.getSystemService(Context.AUDIO_SERVICE)来得到这个类的一个实例。

公有方法:



Public Methods

int

abandonAudioFocus(AudioManager.OnAudioFocusChangeListenerl)

放弃音频的焦点。

void

adjustStreamVolume(int streamType, int direction, int flags)

调整手机指定类型的声音。

void

adjustSuggestedStreamVolume(int,int suggestedStreamType intflags)

调整最相关的流的音量,或者给定的回退流。

void

adjustVolume(int,intflags)

调整最相关的数据流的音量。

int

getMode()

返回当前音频模式。

String

getParameters(String keys)

给音频硬件设置一个varaible数量的参数值

int

getRingerMode()

返回当前的铃声模式。

int

getRouting(int mode)

这个方法是不赞成的。不直接查询音频路由,使用isSpeakerphoneOn(), isBluetoothA2dpOn isBluetoothScoOn(),()isWiredHeadsetOn()方法。

int

getStreamMaxVolume(int streamType)

返回特定流的最大音量指数。

int

getStreamVolume(int streamType)

返回特定数据流的当前音量索引。

int

getVibrateSetting(int vibrateType)

返回是否该用户的振动设置为振动类型。

boolean

isBluetoothA2dpOn()

检查是否A2DP蓝牙耳机音频路由是打开或关闭。

boolean

isBluetoothScoAvailableOffCall()

显示当前平台是否支持使用SCO的关闭调用用例。

boolean

isBluetoothScoOn()

检查通信是否使用蓝牙SCO

boolean

isMicrophoneMute()

检查是否打开或关闭麦克风静音。

boolean

isMusicActive()

检查是否有音乐处于活跃状态。

boolean

isSpeakerphoneOn()

检查是否打开或关闭扬声器。

boolean

isWiredHeadsetOn()

检查是否插入耳机

void

loadSoundEffects()

加载声音效果。

void

playSoundEffect((int effectType, float volume)

播放声音效果(按键点击,盖开启/关闭...

void

playSoundEffect(int effectType)

播放声音效果(按键点击,盖开启/关闭...

void

registerMediaButtonEventReceiver(ComponentName eventReceiver)

注册一个组件MEDIA_BUTTON意图的唯一接收机。

int

requestAudioFocus(AudioManager.OnAudioFocusChangeListener l,int streamType,int durationHint)

请求音频的焦点。

void

setBluetoothA2dpOn(booleanon)

这个方法是不赞成的。不要使用。

void

setBluetoothScoOn(booleanon)

要求使用蓝牙SCO耳机进行通讯。

void

setMicrophoneMute(booleanon)

设置是否让麦克风静音。

void

setMode(int mode)

设置声音模式。

void

setParameters(String keyValuePairs)

设置一个音频硬件数量可变的参数值。

void

setRingerMode(int ringerMode)

设置手机电话铃声的模式。

void

setRouting(int mode, int routes, int mask)

这个方法是不赞成的。不设置音频路由直接使用setSpeakerphoneOn(), setBluetoothScoOn()方法。

void

setSpeakerphoneOn(boolean on)

设置扬声器打开或关闭。

void

setStreamMute(int streamType,booleanstate)

将手机的指定类型的声音调整为静音。

void

setStreamSolo(int streamType,boolean state)

独奏或来取消特定流。

void

setStreamVolume (int streamType, int index, int flags)

直接设置手机的指定类型的音量值。

void

setVibrateSetting (int vibrateType, int vibrateSetting)

设置设置时应该振动的振动类型。

void

setWiredHeadsetOn(boolean on)

这个方法是不赞成的。不要使用。

boolean

shouldVibrate(int vibrateType)

返回特定类型是否应该根据用户震动设置和当前的振铃器 mode

void

startBluetoothSco()

启动蓝牙SCO音频连接。

void

stopBluetoothSco()

停止蓝牙SCO音频连接。

void

unloadSoundEffects()

卸载音效。

void

unregisterMediaButtonEventReceiver(ComponentName eventReceiver)

注销MEDIA_BUTTON意图的接收机。

 


常用方法说明:


void  adjustStreamVolume(int streamType,int direction, int flags)

调整手机指定类型的声音。其中第一个参数streamType指定声音类型,该参数可接受如下几个值。

int    STREAM_ALARM:手机闹铃的声音。

int    STREAM_DTMFDTMF音调的声音。

int    STREAM_MUSIC:手机音乐的声音。

int    STREAM_NOTIFICATION:系统提示的声音。

int    STREAM_RING         The:电话铃声的声音。

int    STREAM_SYSTEM:手机系统的声音。

int    STREAM_VOICE_CALL:语音电话的声音。

第二个参数指定对声音进行增大、还是减小该参数可接受如下几个值:

ADJUST_LOWER 降低音量

ADJUST_RAISE 升高音量      

ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量   

第三个参数是调整声音时的标志,例如指定FLAG_SHOW_UI,则指定调整声音时显示音量进度条。

void setMicrophoneMute(booleanon)

设置是否让麦克风静音。设置为true将麦克风静音;false关闭静音

void  setMode(intmode)

设置声音模式。可设置的值有 NORMAL,RINGTONE, 和IN_CALL。

void setRingerMode(intringerMode)

设置手机电话铃声的模式。可支持如下几个属性值。

int    RINGER_MODE_NORMAL:正常的手机铃声。

int    RINGER_MODE_SILENT:手机铃声静音。

int    RINGER_MODE_VIBRATE:手机震动。

void setSpeakerphoneOn(booleanon)

设置扬声器打开或关闭。设置为true开启免提通话;false关闭免提。

void setStreamMute(intstreamType,booleanstate)

将手机的指定类型的声音调整为静音。其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同。

void setStreamVolume (int streamType, int index, int flags)

直接设置手机的指定类型的音量值。其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同。