下面博客链接为实例代码链接,本章博客就不重复写了。我主要总结了一个方法,方便开发时候使用。

AudioManager提供访问音量和振铃模式控制。
使用Context.getSystemService(Context.AUDIO_SERVICE)得到这个类的一个实例。
链接博客1
链接博客2
链接博客3
谷歌安卓中文官网

声音类型(streamType):

声音类型

说明

STREAM_ALARM

闹钟音量

STREAM_DTMF

双音多频,拨号键的声音

STREAM_MUSIC

音乐音量,即媒体音量

STREAM_NOTIFICATION

通知音量

STREAM_RING

手机铃声

STREAM_SYSTEM

系统声音

STREAM_VOICE_CALL

通话声音

声音方向(direction)

相关方法
adjustVolume(int, int)
adjustStreamVolume(int, int, int)

声音方向

说明

ADJUST_LOWER

减少铃声音量

ADJUST_RAISE

增大铃声音量

ADJUST_MUTE

静音

ADJUST_SAME

当前音量,主要用于展示音量,并非修改

ADJUST_TOGGLE_MUTE

切换静音状态

ADJUST_UNMUTE

取消静音音量

flags:

flags类型

说明

FLAG_ALLOW_RINGER_MODES

FLAG_PLAY_SOUND

是否在改变音量时播放声音

FLAG_REMOVE_SOUND_AND_VIBRATE

无振动,无声音

FLAG_SHOW_UI

调整时显示音量条,就是按音量键出现的界面

FLAG_VIBRATE

如果进入的是振动响铃模式是否振动。

方法

说明

adjustStreamVolume(int streamType,int direction,int flags)

根据方向调整特定音量 streamType: 铃声类型- direction: 方向来调整音量 flags:一个或多个标志


方法

说明

getStreamMaxVolume(int streamType)

说明:指定声音类型的最大音量

getStreamVolume(int streamType)

指定声音类型,获取当前音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。

setStreamVolume(int streamType,int direction,int flags)

改变音量index:声音大小 ,可以根据-

boolean isStreamMute (int streamType)

返回特定声音类型的当前静音状态

铃声模式(ringerMode):

铃声模式

说明

RINGER_MODE_NORMAL

正常(可能有声),震动(可能振动)

RINGER_MODE_SILENT

无声,不会振动

RINGER_MODE_VIBRATE

无声,振动

方法

说明

getRingerMode()

返回当前的铃声模式。

setRingerMode(int ringerMode)

设置铃声模式。


音频模式(mode):

音频模式

说明

MODE_CURRENT

当前音频模式

MODE_NORMAL

正常音频模式:不响,没有呼叫建立。

MODE_RINGTONE

振铃音模式。呼入被通知。

MODE_IN_CALL

在通话音频模式。一个电话呼叫建立。

MODE_IN_COMMUNICATION

在通信音频模式。音频/视频聊天或VoIP呼叫建立。

MODE_INVALID

int getMode ()

返回当前的音频模式

setMode(int mode)

设置音频模式。

方法

说明

isVolumeFixed()

判断是否是固定声音,是则无法通过修改调节音量

isMusicActive()

检查音乐是否处于活动状态

isSpeakerphoneOn()

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

setMicrophoneMute(boolean on)

设置开启或关闭麦克风静音。

setSpeakerphoneOn(boolean on)

设置为打开或关闭扬声器。

registerAudioDeviceCallback(AudioDeviceCallback callback, Handler handler)

注册一个AudioDeviceCallback对象,以接收改变通知到设定连接的音频设备。

registerAudioPlaybackCallback(AudioManager.AudioPlaybackCallback cb, Handler handler)

注册一个回调,通过通知的音频播放变化

AudioManager.AudioPlaybackCallback

requestAudioFocus(AudioFocusRequest focusRequest)

请求音频焦点。