본문 바로가기

멀티미디어/Audio

액티비티에서 볼륨키를 눌러 조절할 오디오 항목을 선택하는 방법

안드로이드 시스템에서 조절할 수 있는 오디오 항목은 매우 다양합니다. 벨소리 볼륨, 미디어 볼륨, 시스템 볼륨 및 알림 볼륨을 각각 따로 설정할 수 있는데, 이러한 볼륨들을 액티비티상에서 바로 볼륨키를 사용하여 조절하고 싶은 경우가 있습니다.

한 예로, 음악 플레이어 애플리케이션은 음악 재생 액티비티가 표시되고 있을 때 볼륨키를 누르면 '미디어 볼륨'을 조절하는 기능을 제공합니다. 반면 벨소리를 선택하는 애플리케이션의 경우, 벨소리 선택 액티비티가 표시되고 있을 때 볼륨키를 누르면 '벨소리 볼륨'을 조절합니다.

이와 같이, 액티비티의 성격에 따라 볼륨키를 눌러 조절할 오디오 항목을 선택하려면 어떻게 해야 할까요?
복잡하게  생각하면 onKeyDown()  메서드를 오버라이드하고, 오디오 볼륨을 조절할 수 있는 AudioManager를 사용하여 볼륨을 조절할 항목을 선택하도록 할 수도 있지만, Activity 클래스 내의 다음 코드를 사용하면 간편하게 액티비티상에서 원하는 항목의 볼륨을 조절할 수 있습니다. 

API
public final void setVolumeControlStream (int streamType)
액티비티에서 볼륨키를 눌렀을 때 조절할 볼륨 항목을 설정합니다.

setVolumeControlStream() 메서드의 인자로 받을 수 있는 항목은 다음과 같습니다.

  • AudioManager.STREAM_ALARM : 알람 볼륨입니다.
  • AudioManager.STREAM_DTMF : DTMF 톤 볼륨입니다.
  • AudioManager.STREAM_MUSIC : 미디어 볼륨입니다.
  • AudioManager.STREAM_NOTIFICATION : 알림 볼륨입니다.
  • AudioManager.STREAM_RING : 벨소리 볼륨입니다.
  • AudioManager.STREAM_SYSTEM : 시스템 볼륨입니다.
  • AudioManager.SYSTEM_VOICE_CALL : 음성 통화 볼륨입니다.

위 코드를 다음과 같이 액티비티 코드에 적용하면 액티비티에서 볼륨키를 눌러 선택한 오디오 항목의 볼륨을 조절할 수 있습니다.
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ...(생략)...
        setVolumeControlStream(AudioManager.STREAM_MUSIC); // 미디어 볼륨을 조절하도록 설정
    }