1. 程式人生 > >Android聲音大小控制——AudioManager使用

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 表示什麼也沒有。

        一般都是用方法八來控制音量的大小,就算傳入的音量數值比方法六獲取到的手機最大鈴聲都大,也不會報錯,只是將音量設定為最大音量,在操作完後通過方法六獲取的最大的音量不變。所以在使用這些方法時,一般都是先獲取一下最大音量和當前音量,做下比較後再次設定音量比較好。