1. 程式人生 > >android筆記:android系統各種音量的獲取與設定

android筆記:android系統各種音量的獲取與設定

好久沒有更新部落格了啊,最近在公司加班忙的要瘋!

獲取系統音量

通過程式獲取android系統手機的鈴聲和音量。同樣,設定鈴聲和音量的方法也很簡單!

設定音量的方法也很簡單,AudioManager提供了方法:
publicvoidsetStreamVolume(intstreamType,intindex,intflags)
其中streamType有內建的常量,去文件裡面就可以看到。

JAVA程式碼:

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

//通話音量

int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
Log.d(“VIOCE_CALL”, “max : ” + max + ” current : ” + current);

//系統音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM ); Log.d(“SYSTEM”, “max : ” + max + ” current : ” + current);

//鈴聲音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );
Log.d(“RING”, “max : ” + max + ” current : ” + current);

//音樂音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
Log.d(“MUSIC”, “max : ” + max + ” current : ” + current);

//提示聲音音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );
Log.d(“ALARM”, “max : ” + max + ” current : ” + current);

ps:
  遊戲過程中只允許調整多媒體音量,而不允許調整通話音量。
  setVolumeControlStream(AudioManager.STREAM_MUSIC);
  長時間不動,不允許黑屏,View.setKeepScreenOn(true);
  估計manifest檔案中需要註冊許可權吧

調節媒體音量
1.先獲取相關的Manager

AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);

2.再捕獲音量鍵的按鍵

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        audio.adjustStreamVolume(
            AudioManager.STREAM_MUSIC,
            AudioManager.ADJUST_RAISE,
            AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        audio.adjustStreamVolume(
            AudioManager.STREAM_MUSIC,
            AudioManager.ADJUST_LOWER,
            AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
        return true;
    default:
        break;
    }
    return super.onKeyDown(keyCode, event);
}

這樣就可以了。