Android中有6类铃音,分别是通话音、系统音、铃音、媒体音、闹钟音、通知音。
铃音类型的取值如下:
- STREAM_VOICE_CALL 通话音
- STREAM_SYSTEM 系统音
- STREAM_RING 铃音,来电与收短信的铃声
- STREAM_MUSIC 媒体音,音频、视频、游戏等的声音
- STREAM_ALARM 闹钟音
- STREAM_NOTIFICATION 通知音
管理这些铃声音量的工具是AudioManager,对象从系统服务AUDIO_SERVICE中获取。
下面是AudioManager的常用方法:
getStreamMaxVolume:获取指定类型铃声的最大音量。
getStreamVolume:获取指定类型铃声的当前音量。
getRingerMode:获取指定类型铃声的响铃模式。响铃模式取值如下:
- RINGER_MODE_NORMAL 正常
- RINGER_MODE_SILENT 静音
- RINGER_MODE_VIBRATE 震动
setStreamVolume:设置指定类型铃声的当前音量。第一个参数为铃音类型,第二个参数为音量值,第三个参数为指示在调整音量时是否播放声音效果的标志。标志取值如下:
- FLAG_ALLOW_RINGER_MODES 系统会在响铃音量为0时自动切换到震动模式
- FLAG_PLAY_SOUND 调整时播放声音
- FLAG_REMOVE_SOUND_AND_VIBRATE 删除可能在队列中或正在播放的任何声音/振动(与更改音量有关)
- FLAG_SHOW_UI 更改音量后,系统会显示一个包含当前音量的Toast
- FLAG_VIBRATE 进入振动模式时,系统会振动
setRingerMode:设置指定类型铃声的响铃模式。
adjustStreamVolume:调整指定类型铃声的当前音量。第一个参数为铃音类型,第二个参数为调整方向,第三个参数为指示在调整音量时是否播放声音效果的标志。调整方向取值如下:
- ADJUST_RAISE 调大一级
- ADJUST_LOWER 调小一级
- ADJUST_SAME 保持不变
- ADJUST_MUTE 静音
- ADJUST_UNMUTE 取消静音
- ADJUST_TOGGLE_MUTE 静音取反,即原来不是静音就设置静音,原来是静音就取消静音
//获取音频管理者
AudioManager audioManager= (AudioManager) getSystemService(AUDIO_SERVICE);
//获取指定类型最大音量
int maxVolume=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//设置指定类型音量
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,maxVolume,AudioManager.FLAG_SHOW_UI|AudioManager.FLAG_PLAY_SOUND);