안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 촙오입니다.
모바일 네비게이션에서
안내가 나올 때
다른 미디어의 볼륨은 작게 하고
해당 어플의 볼륨만 크게 조절하고 싶습니다.
다른 미디어의 볼륨을 조절하는 것은 해결 했습니다만,
해당 어플의 볼륨만 조절하는 것을 잘 모르겠습니다 ㅠㅠ
고수님들의 지도 편달 부탁드립니다~
2012.12.05 15:33:59
친절한 답변 감사합니다!!
역시 안되는 건가요.. ㅠㅠ
현재 앱에서는 Notification 형식으로 바꿔서 음원을 내보내는 형식으로 해서 Media 타입이랑 구분을 주려고 하고있습니다만
즉 아래와 같이 구현하였습니다만
AudioManager audio_manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
// 미디어 볼륨 줄이기
audio_manager.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) * 0.1), 0);
// 통지 볼륨 MAX로 하기
audio_manager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION) * 0.9), 0);
// 진동 효과 없애기
audio_manager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);
// 안내 방송 내보내기
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification noti = new Notification();
noti.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.c00001);
notificationManager.notify(1, noti);
// 미디어 볼륨 다시 최대로 하기
audio_manager.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)), 0);
어떤 단말은 안내방송이 나올때 미디어 음량이 자동으로 작아져서 볼륨 설정도 안해줘도 가능했습니다만..
문제는 단말에 따라서 어떤 단말은 앱에서 안내 방송이 나올 때 미디어 음량이 꺼지는 경우도 있다는 점입니다.
안드로이드는 여러 단말을 대응해야 하기 때문에 어렵군요.. ㅠㅠ
결국 위의 방법이 효율적인 건지.. 아니면 포기해야 하는건지.. ㅠㅠ
역시 안되는 건가요.. ㅠㅠ
현재 앱에서는 Notification 형식으로 바꿔서 음원을 내보내는 형식으로 해서 Media 타입이랑 구분을 주려고 하고있습니다만
즉 아래와 같이 구현하였습니다만
AudioManager audio_manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
// 미디어 볼륨 줄이기
audio_manager.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) * 0.1), 0);
// 통지 볼륨 MAX로 하기
audio_manager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION) * 0.9), 0);
// 진동 효과 없애기
audio_manager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);
// 안내 방송 내보내기
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification noti = new Notification();
noti.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.c00001);
notificationManager.notify(1, noti);
// 미디어 볼륨 다시 최대로 하기
audio_manager.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(audio_manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)), 0);
어떤 단말은 안내방송이 나올때 미디어 음량이 자동으로 작아져서 볼륨 설정도 안해줘도 가능했습니다만..
문제는 단말에 따라서 어떤 단말은 앱에서 안내 방송이 나올 때 미디어 음량이 꺼지는 경우도 있다는 점입니다.
안드로이드는 여러 단말을 대응해야 하기 때문에 어렵군요.. ㅠㅠ
결국 위의 방법이 효율적인 건지.. 아니면 포기해야 하는건지.. ㅠㅠ
앱만 따로 볼륨을 조절하는건 없는걸로 알고 있습니다.
별도로 저장하시고 앱이 시작, 종료할때 설정하셔야 되지 않을까 싶네요.