読者です 読者をやめる 読者になる 読者になる

kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

端末の音量をコードから変更する

Android Studio Androidアプリ 備忘録 開発 android java audiomanager alarm 設定 取得 stream seek

端末の音量を設定するには、AudioManagerを介して行います。
各ストリームごとの、音量を設定、現在の音量を取得、最大値を知る等のことができます。
最大値は端末によって違い、7だったり15だったりするので、
独自にシークバーなどを実装するときは、最大値を知っておく必要があります。
ですが、最大値以上(100など)をセットしても、最大値に設定されます。


AudioManagerを取得する

private AudioManager mAudioManager;
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);


各ストリームの最大音量を取得する(以下、アラームのストリームの例)

int maxVol = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);

現在の音量を取得する

int nowVol = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM);

設定を変更する

int value = 3;
mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM,value,AudioManager.FLAG_SHOW_UI);

第3引数のフラグ

AudioManager.FLAG_SHOW_UI は、端末上部にシークバーが表示され、ユーザーは操作ができます。
AudioManager.FLAG_PLAY_SOUND は、上記に加えて、現在の音量で「ピッ」と鳴る。
0を指定した場合は、設定変更されるが、なにも表示されません。