1. 程式人生 > >一看就會Android之手機系統音量的設定

一看就會Android之手機系統音量的設定



AudioManager類位於android.Media 包中,通過getSystemService(Context.AUDIO_SERVICE)方法獲得AudioManager例項物件。AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我們定義的控制系統聲音的物件。

常用的音量控制的方法如下:

  1. 獲取系統的最大音量

    getStreamMaxVolumeint streamType

2.獲取當前手機音量

getStreamVolume(int streamType) --- ---

返回int型別的結果,最大值為7最小值為0,為0時預設開啟振動模式。

3.逐級性增大或減小音量(該方法不能直接設定音量為某個值,而是從當前音量逐級遞減或遞加,一般結合Button使用)

adjustStreamVolume(intstreamType,intdirection,intflags);

第二個引數為調整音量的方向,取值有:ADJUST_LOWER(降低聲音),ADJUST_RAISE(增加聲音)和ADJUST_SAME

4.直接性設定音量大小(該方法適用於直接設定當前音量為某個值----一般結合SeekBar使用)

setStreamVolume(int streamType, int index, int flags)

第一個引數的幾個值:

AudioManager.STREAM_ALARM:手機鬧鈴的聲音

AudioManager.STREAM_MUSIC:手機音樂的聲音

AudioManager.STREAM_DTMFDTMF音調的聲音

AudioManager. STREAM_RING:電話鈴聲的聲音

AudioManager. STREAM_NOTFICATION:系統提示的聲音

AudioManager.STREAM_SYSTEM:系統的聲音

AudioManager. STREAM_VOICE_CALL:語音電話聲音

第二個表示調整音樂的大小,

第三個引數表示顯示調整時的可選的標誌位,常取值為

AudioManager.FLAG_SHOW_UI

5.設定指定型別的聲音是否為靜音,true代表為靜音,false取消靜音

setStreamMute(intstreamType,Boolean state):

如為播放音樂設定點選靜音按鈕時靜音,則如下:

setStreamMute(AudioManager.STREAM_MUSIC, true)

常用方法:
android audioManager
獲取音量:先獲取AudioManager例項,
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

//通話音量

int max =mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); 

int current =mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); 

//系統音量

int max =mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM ); 

current =mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM ); 

//鈴聲音量

max =mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING ); 

current =mAudioManager.getStreamVolume( AudioManager.STREAM_RING ); 

//音樂音量

max =mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); 

current =mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); 

//提示聲音音量

max =mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM ); 

current =mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );