AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。
官方文档中注明了:Use Context.getSystemService(Context.AUDIO_SERVICE)
to get an instance of this class.
所以我们可以通过下面的语句获得:
audiomanager就是我们定义的控制系统声音的对象。
这里只讲述几个比较常用到的方法:
adjustVolume(int direction, int flags)
用来控制手机音量大小,
当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,
传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。
adjustStreamVolume(int streamType, int direction, intflags)
(以步长)调节手机音量大小
参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)
参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
参数3:可选的标志位
setStreamVolume(int streamType, int index, intflags)
直接设置音量大小
getMode()
返回当前音频模式,如 NORMAL(普通), RINGTONE(铃声), orIN_CALL(通话)
setMode()
设置声音模式,可取值NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)
getRingerMode()
返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)
setRingerMode(int ringerMode)
改变铃声模式
getStreamVolume(int streamType)
取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。
getStreamMaxVolume(int streamType)
获得当前手机最大铃声。
setStreamMute(int streamType, boolean state)
静音或不静音音频流
设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。
直接控制音量的多少:
以一步步长控制音量的增减,并弹出系统默认音量控制条:
常用方法:
android audioManager获取音量:
先获取AudioManager实例,
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);