當開發(fā)多媒體應(yīng)用或者游戲應(yīng)用的時候,需要使用音量控制鍵來設(shè)置程序的音量大小。在Android系統(tǒng)中有多中音頻流,通過Activity中的函數(shù) setVolumeControlStream(int streamType)可以設(shè)置該Activity中音量控制鍵控制的音頻流,一般在onCreate函數(shù)中設(shè)置隘庄。Android中有如下幾種音頻流(streamType是需要調(diào)整音量的類型):
AudioManager.STREAM_MUSIC /音樂回放即媒體音量/
AudioManager.STREAM_RING /鈴聲/
AudioManager.STREAM_ALARM /警報/
AudioManager.STREAM_NOTIFICATION /窗口頂部狀態(tài)欄通知聲/
AudioManager.STREAM_SYSTEM /系統(tǒng)/
AudioManager.STREAM_VOICECALL /通話 /
AudioManager.STREAM_DTMF /雙音多頻,不是很明白什么東西 /
AudioManager可以修改系統(tǒng)Android系統(tǒng)的音量,下面介紹幾個AudioManager的幾個音量調(diào)整方面的方法.首先是得到AudioManager實例:
Java代碼
AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
調(diào)整音量方法有兩種,一種是漸進式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設(shè)置音量值.1、漸進式
Java代碼
publicvoidadjustStreamVolume (intstreamType, intdirection, intflags)
am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
解釋一下三個參數(shù)
Java代碼
第一個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 保持不變,這個主要用于向用戶展示當前的音量
第三個flags是一些附加參數(shù),只介紹兩個常用的
FLAG_PLAY_SOUND 調(diào)整音量時播放聲音
FLAG_SHOW_UI 調(diào)整時顯示音量條,就是按音量鍵出現(xiàn)的那個
0表示什么也沒有
2癣亚、直接設(shè)置音量值的方法:
Java代碼
publicvoidsetStreamVolume (intstreamType, intindex, intflags)
am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);
am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//得到聽筒模式的最大值
am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);//得到聽筒模式的當前值
第一個和第三個參數(shù)與上面的相同第二個參數(shù)是一個音量的int值,getStreamMaxVolume(int streamType)得到的是該類型音量的最大值,可以根據(jù)這個值計算你需要的音量,我這里直接調(diào)到最大.