Android开发之AudioManager(音频管理器)具体解释

Posted wzjhoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法中第一个參数的意义同样。

 



以上是关于Android开发之AudioManager(音频管理器)具体解释的主要内容,如果未能解决你的问题,请参考以下文章

初学Android 音频管理器之控制音频 六十六

Android音视频之AudioTrack播放音频

Android 5 和音频路由

Audiomanager 和 MediaPlayer 的区别

安卓 SDK。音频管理器。 setStreamVolume 最大 int 值

Android随笔之——PackageManager详解