下面博客链接为实例代码链接,本章博客就不重复写了。我主要总结了一个方法,方便开发时候使用。
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 | 如果进入的是振动响铃模式是否振动。 |
方法 | 说明 |
| 根据方向调整特定音量 |
方法 | 说明 |
| 说明:指定声音类型的最大音量 |
| 指定声音类型,获取当前音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。 |
| 改变音量index:声音大小 ,可以根据- |
| 返回特定声音类型的当前静音状态 |
铃声模式(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) | 请求音频焦点。 |