티스토리 뷰

안드로이드 앱을 짜다 보면, 미디어의 불륨을 조정해야 할 때가 있습니다.
그런데 불륨 조정을 누르면 당황스럽게 벨소리 볼륨이 조정이 됩니다.

그걸 다른걸로 조정하고 싶을 경우에는 아래와 같이 onCreate에 setVolumeControlStream을 넣어 주시면 됩니다.

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setVolumeControlStream(AudioManager.STREAM_MUSIC); // 하드웨어 볼륨이 미디어 볼륨을 조절
    }
설정할 수 있는 키는 아래와 같습니다.
  • AudioManager.STREAM_ALARM : 알람 볼륨.
  • AudioManager.STREAM_DTMF : DTMF 톤 볼륨.
  • AudioManager.STREAM_MUSIC : 미디어 볼륨입.
  • AudioManager.STREAM_NOTIFICATION : 알림 볼륨.
  • AudioManager.STREAM_RING : 벨소리 볼륨.
  • AudioManager.STREAM_SYSTEM : 시스템 볼륨.
  • AudioManager.SYSTEM_VOICE_CALL : 음성 통화 볼륨.

또 다른 방법으로는 아래와 같이 키를 가로채서도 동작이 가능 합니다.
    private AudioManager audio;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        audio = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    }
   
    @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_SHOW_UI);
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
            return true;
        }
        super.onKeyDown(keyCode, event);
        return true;
    }

댓글
댓글쓰기 폼