前面講過AudioManager可以修改系統(tǒng)的情景模式,其實看它名字,就知道Android系統(tǒng)的音量也是由它管理的.下面介紹幾個AudioManager的幾個音量調(diào)整方面的方法.
首先是得到AudioManager實例:
1 |
AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); |
調(diào)整音量方法有兩種,一種是漸進(jìn)式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設(shè)置音量值.
首先是步進(jìn)的方法:public void adjustStreamVolume (int streamType, int direction, int flags)
1 |
am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); |
解釋一下三個參數(shù)
第一個streamType是需要調(diào)整音量的類型,這里設(shè)的是媒體音量,可以是:
STREAM_ALARM 警報
STREAM_MUSIC 音樂回放即媒體音量
STREAM_NOTIFICATION 窗口頂部狀態(tài)欄Notification,
STREAM_RING 鈴聲
STREAM_SYSTEM 系統(tǒng)
STREAM_VOICE_CALL 通話
STREAM_DTMF 雙音多頻,不是很明白什么東西
第二個direction,是調(diào)整的方向,增加或減少,可以是:
ADJUST_LOWER 降低音量
ADJUST_RAISE 升高音量
ADJUST_SAME 保持不變,這個主要用于向用戶展示當(dāng)前的音量
第三個flags是一些附加參數(shù),只介紹兩個常用的
FLAG_PLAY_SOUND 調(diào)整音量時播放聲音
FLAG_SHOW_UI 調(diào)整時顯示音量條,就是按音量鍵出現(xiàn)的那個
然后是直接設(shè)置音量值的方法:public void setStreamVolume (int streamType, int index, int flags)
1 |
am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND); |
第一個和第三個參數(shù)與上面的相同,第二個參數(shù)是一個音量的int值,getStreamMaxVolume(int streamType)得到的是該類型音量的最大值,可以根據(jù)這個值計算你需要的音量,我這里直接調(diào)到最大.