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