寒川アクアブログ

美容師しながらアプリ開発していて水草が趣味の私のブログです

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

端末の音量を設定するには、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を指定した場合は、設定変更されるが、なにも表示されません。