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 (雙音多頻,不是很明白什麼東西)。
方法八:
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 表示什麼也沒有。
一般都是用方法八來控制音量的大小,就算傳入的音量數值比方法六獲取到的手機最大鈴聲都大,也不會報錯,只是將音量設定為最大音量,在操作完後通過方法六獲取的最大的音量不變。所以在使用這些方法時,一般都是先獲取一下最大音量和當前音量,做下比較後再次設定音量比較好。