android AudioManager類 詳解

AudioManager類位於android.Media 包中,該類提供訪問控制音量和鈐聲模式的操作。

通過getSystemService(Context.AUDIO_SERVICE)方法獲得AudioManager實例對象。

AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我們定義的控制系統聲音的對象。


這裏只講述幾個比較常用到的方法:

adjustVolume(int direction, int flags) ——用來控制手機音量大小,當傳入的第一個參數爲AudioManager.ADJUST_LOWER 時,可將音量調小一個單位,傳入AudioManager.ADJUST_RAISE時,則可以將音量調大一個單位。

adjustStreamVolume(int streamType, int direction, intflags)——(以步長)調節手機音量大小
參數1:聲音類型,可取爲STREAM_VOICE_CALL(通話)、STREAM_SYSTEM(系統聲音)、STREAM_RING(鈴聲)、STREAM_MUSIC(音樂)、STREAM_ALARM(鬧鈴聲)
參數2:調整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
參數3:可選的標誌位

setStreamVolume(int streamType, int index, intflags)——直接設置音量大小


getMode() ——返回當前音頻模式,如 NORMAL(普通), RINGTONE(鈴聲), orIN_CALL(通話)

setMode()——設置聲音模式,可取值NORMAL(普通), RINGTONE(鈴聲), or IN_CALL(通話)

getRingerMode()——返回當前的鈴聲模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(靜音)、RINGER_MODE_VIBRATE(震動)

setRingerMode(int ringerMode) ——改變鈴聲模式

getStreamVolume(int streamType)——取得當前手機的音量,最大值爲7,最小值爲0,當爲0時,手機自動將模式調整爲“震動模式”。

getStreamMaxVolume(int streamType)——獲得當前手機最大鈴聲。

setStreamMute(int streamType, boolean state

//音量控制,初始化定義
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//最大音量
intmaxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//當前音量
intcurrentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);


直接控制音量的多少:

1

2
3
4
5
if(isSilent){
  mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0);
}else{
  mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume,0);//tempVolume:音量絕對值
}

以一步步長控制音量的增減,並彈出系統默認音量控制條:

1
2
3
4
5
6
7
8
9
10
//降低音量,調出系統音量控制
if(flag ==0){
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,
                            AudioManager.FX_FOCUS_NAVIGATION_UP);
}
//增加音量,調出系統音量控制
elseif(flag ==1){
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,
                            AudioManager.FX_FOCUS_NAVIGATION_UP);
}


常用方法:
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); 


發佈了1 篇原創文章 · 獲贊 13 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章