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에는
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는 변경한 소리의 볼륨의 상태를 결정하는 함수
소리를 출력하고 싶으면 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);
'JAVA' 카테고리의 다른 글
[Java] 안드로이드 화면 제어하는 코드 (0) | 2022.04.22 |
---|---|
[Java/Android] 안드로이드 부팅 후 앱 자동 실행 (0) | 2022.04.07 |
[Java] 특정 날짜가 유효기간 내에 있는지 확인 하는 방법 (0) | 2021.11.19 |
[Java] 값 비교하기 compareTo 사용하기 (0) | 2021.11.17 |
[JAVA] URL에 올려진 파일 다운로드 하는 방법 (0) | 2021.11.04 |
댓글