본문 바로가기
JAVA

[Java/Android] 안드로이드 볼륨 조절하기

by 고체물리학 2022. 3. 29.

1. AudioManager 클래스를 선언한다

 

AudioManager am = (AudioManager)mApplication.getApplicationContext().getApplicationContext().getSystemService(Context.AUDIO_SERVICE);

 

2. am 변수로 호출한 현재 오디오의 볼륨을 원하는 크기에 맞게 세팅한다

am.setStreamVolume(AudioManager.STREAM_MUSIC, 8,AudioManager.FLAG_PLAY_SOUND); //볼륨조절

 

안드로이드의 벨, 음악, 시스템 등의 소리를 변경하는 방법은 setStreamVolume(int streamType, int index, int flags)

 

첫 번째 인자 stremType에는

streamType

 

AudioManager.STREAM_ALARM - 알람에 대한 오디오 스트림의 볼륨

AudioManager.STREAM_DTMF - DTMF 톤(다중 주파수)에 대한 오디오 스트림의 볼륨/전화기 등의 삐뽀~ 빠~등과 같은 전화기의 숫자 버튼스위치를 눌렀을 때 나오는 톤(Tone) 음을 발생시키는 장치

AudioManager.STREAM_MUSIC - 음악 재생을 위한 오디오 스트림의 볼륨

AudioManager.NOTIFICATION - 알림에 대한 오디오 스트림의 볼륨

AudioManager.RING - 전화 벨소리에 대한 오디오 스트림의 볼륨

AudioManager.SYSTEM - 시스템 사운드에 대한 오디오 스트림의 볼륨

AudioManager.VOICE_CALL - 전화 통화에 대한 오디오 스트림의 볼륨

 

 

두 번째 인자 index는 소리의 크기를 정하는 변수이다

am.getStreamMaxVolume(AudioManager.STREAM_MUSIC)

디바이스 소리의 최댓값을 출력하여 0 ~ 최대값 사이로 정해주면 된다

 

만약 소리의 중간값을 출력하고 싶으면 아래와 같이 설정한다

am.setStreamVolume(AudioManager.STREAM_MUSIC,(int)(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*0.5),AudioManager.FLAG_PLAY_SOUND);

 

 

세 번째 인자 flags는 변경한 소리의 볼륨의 상태를 결정하는 함수

flags

 

소리를 출력하고 싶으면 FLAG_PLAY_SOUND를 입력해주면 된다

 

반응형

추가로 소리, 무음, 진동을 설정하는 함수도 있다 setRingerMode(int ringerMode)함수 사용

소리만 사용한다면 기본값이 NORMAL이라 따로 설정을 안 해도 되긴 하지만 무음이나 진동으로 설정한다면 먼저 초기화해주고 사용한다

 

 

디바이스를 소리 상태로 만들고 볼륨은 음악소리의 50%로 출력하는 프로그램은 아래와 같이 작성할 수 있다

AudioManager am = (AudioManager)mApplication.getApplicationContext().getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
am.setStreamVolume(AudioManager.STREAM_MUSIC,(int)(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*0.5),AudioManager.FLAG_PLAY_SOUND);

 

반응형

댓글