準(zhǔn)備工作
//初始化音頻管理器
AudioManager mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
//獲取系統(tǒng)最大音量
int maxVolume=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
// 獲取設(shè)備當(dāng)前音量
int currentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
// 設(shè)置seekbar的最大值
sbVolume.setMax(maxVolume);
// 顯示音量
sbVolume.setProgress(currentVolume);
開(kāi)始調(diào)節(jié)
調(diào)節(jié)音量有兩種方式一種是漸進(jìn)式,即像手動(dòng)按音量鍵一樣,一步一步增加或減少,另一種是直接設(shè)置音量值
- 漸進(jìn)式
public void adjustStreamVolume (int streamType, int direction, int flags)
//減少音量
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,AudioManager.FX_FOCUS_NAVIGATION_UP);
//增加電量
mAudioManager.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE,AudioManager.FX_FOCUS_NAVIGATION_UP)
第一個(gè)streamType是需要調(diào)整音量的類(lèi)型,這里設(shè)的是媒體音量,可以是:
STREAM_ALARM 警報(bào)
STREAM_MUSIC 音樂(lè)回放即媒體音量
STREAM_NOTIFICATION 窗口頂部狀態(tài)欄Notification,
STREAM_RING 鈴聲
STREAM_SYSTEM 系統(tǒng)
STREAM_VOICE_CALL 通話
STREAM_DTMF 雙音多頻,不是很明白什么東西
第二個(gè)direction,是調(diào)整的方向,增加或減少,可以是:
ADJUST_LOWER 降低音量
ADJUST_RAISE 升高音量
ADJUST_SAME 保持不變,這個(gè)主要用于向用戶展示當(dāng)前的音量
第三個(gè)flags是一些附加參數(shù),只介紹兩個(gè)常用的
FLAG_PLAY_SOUND 調(diào)整音量時(shí)播放聲音
FLAG_SHOW_UI 調(diào)整時(shí)顯示音量條,就是按音量鍵出現(xiàn)的那個(gè)
- 直接設(shè)置
public void setStreamVolume (int streamType, int index, int flags)
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);
//得到聽(tīng)筒模式的最大值
mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
//得到聽(tīng)筒模式的當(dāng)前值
mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);