Android声音大小控制——AudioManager使用

控制系统的音量大小,方法很简单,如果是手机,嘿嘿,请按音量加减键,如果想通过什么上下滑动屏幕来控制的话,那就得看看android是怎么控制音量的了。

AudioManager类,我们定义的控制系统声音的管理者,位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。咱们可以通过以下方式来获取到他:

AudioManager audiomanage = (AudioManager)getAcitivity().getSystemService(Context.AUDIO_SERVICE);
这里讲讲他的几种常用的方法:

方法一:

adjustVolume(int direction, int flags):用来控制手机音量大小。

参数一:传入AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。

参数二:可选的标志位,FLAG_PLAY_SOUND 调整音量时播放声音,FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个,0 表示什么也没有。

方法二:

adjustStreamVolume(int streamType, int direction, int flags):(以步长)调节手机音量大小。

参数一:声音类型,STREAM_ALARM (警报)、STREAM_MUSIC (媒体音量)、STREAM_NOTIFICATION (窗口顶部状态栏Notification)、

STREAM_RING (手机铃声)、STREAM_SYSTEM (系统)、STREAM_VOICE_CALL (通话)、STREAM_DTMF (双音多频,不是很明白什么东西)。 

参数二:调整音量的方向, ADJUST_LOWER 降低音量、ADJUST_RAISE 升高音量、ADJUST_SAME 音量保持不变,这个主要用于向用户展示当前的音量。

参数三:可选的标志位,FLAG_PLAY_SOUND 调整音量时播放声音,FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个,0 表示什么也没有。

方法三:

getMode():返回当前音频模式,如 MODE_NORMAL(普通), MODE_RINGTONE(铃声), MODE_IN_CALL(通话);

setMode():设置声音模式,可取值MODE_NORMAL(普通), MODE_RINGTONE(铃声), MODE_IN_CALL(通话)。

方法四:

getRingerMode():返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动);

setRingerMode(int ringerMode):改变铃声模式,可取值RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)。

方法五:

getStreamVolume(int streamType):取得当前手机的指定类型音量,当为0时,手机自动将模式调整为“震动模式”。

参数:声音类型,STREAM_ALARM (警报)、STREAM_MUSIC (媒体音量)、STREAM_NOTIFICATION (窗口顶部状态栏Notification)、

STREAM_RING (手机铃声)、STREAM_SYSTEM (系统)、STREAM_VOICE_CALL (通话)、STREAM_DTMF (双音多频,不是很明白什么东西)。 

方法六:
getStreamMaxVolume(int streamType):取得当前手机的指定类型最大铃声,参数如上。
方法七:
setStreamMute(int streamType, boolean state):设置指定声音类型是否为静音。
参数一:声音类型,同方法五参数
参数二:如果state为true,则设置为静音;否则,不设置为静音。

方法八:

setStreamVolume(int streamType, int index, intflags) :直接设置音量大小(最常用的方法);

参数一:声音类型,STREAM_ALARM (警报)、STREAM_MUSIC (媒体音量)、STREAM_NOTIFICATION (窗口顶部状态栏Notification)、

STREAM_RING (手机铃声)、STREAM_SYSTEM (系统)、STREAM_VOICE_CALL (通话)、STREAM_DTMF (双音多频,不是很明白什么东西)。 

参数二:想要调整的音量大小的数值。

参数三:可选的标志位,FLAG_PLAY_SOUND 调整音量时播放声音,FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个,0 表示什么也没有。

        一般都是用方法八来控制音量的大小,就算传入的音量数值比方法六获取到的手机最大铃声都大,也不会报错,只是将音量设置为最大音量,在操作完后通过方法六获取的最大的音量不变。所以在使用这些方法时,一般都是先获取一下最大音量和当前音量,做下比较后再次设置音量比较好。




你可能感兴趣的:(Android声音大小控制——AudioManager使用)