AudioManager
當我們在聽歌時,當我們在刷小影片時,當我們在看動漫、在看電影、在追劇時,不知道是否有人注意到,在這些軟體中滑動螢幕或者拖動滑動條就可以直接控制音量,而不需要去按手機硬體上的音量鍵
在某些時候,程式需要管理系統音量,或者讓系統直接靜音,這就要藉助於Android提供的AudioManager來實現了
先呼叫 getSysytemService方法來獲取系統的音訊管理器,然後再呼叫 AudioManager的方法控制手機音訊即可
在舉例子之前,需要來了解一下AudioManager的大致用法
adjustStreamVolume(int streamType,int direction,int flag):呼叫手機指定型別的聲音, streamType的引數如下:
-
STREAM_ALARM:手機鬧鈴的聲音
-
STREAM_DTMF:DTMF音調的聲音
-
STREAM_MUSIC:手機音樂的聲音
-
STREAM_NOTIFICATION:系統提示的聲音
-
STREAM_RING:電話鈴聲的聲音
-
...
接下來,來看一下具體的例子
在xml中先建立幾個button,然後開啟MainActivity
首先需要在 onCreate建立各個button的例項和呼叫 getSysytemService方法來獲取系統的音訊管理器
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); aManager = (AudioManager) getSystemService( Service.AUDIO_SERVICE); play = (Button) findViewById(R.id.play); up = (Button) findViewById(R.id.up); down = (Button) findViewById(R.id.down); mute = (ToggleButton) findViewById(R.id.mute); }
在 onCreate中繼續實現 播放音樂
play.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { MediaPlayer mPlayer = MediaPlayer.create( MainActivity.this, R.raw.earth); mPlayer.setLooping(true); mPlayer.start(); } });
在 onCreate 中繼續實 增大音量
up.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); } });
在 onCreate 中繼續實 減小音量
down.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); } });
最後在onCreat中實現 靜音
mute.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton source, boolean isChecked) { // 指定調節音樂的音訊,根據isChecked確定是否需要靜音 aManager.setStreamMute(AudioManager.STREAM_MUSIC, isChecked); } });
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2697030/,如需轉載,請註明出處,否則將追究法律責任。