音量を設定する
|Androidで音量を調整するにはAudioManagerを利用します。
AudioManagerを利用することで以下の音量を調整することができます。
- 着信音量(STREAM_RING)
- 通知音量(STREAM_NOTIFICATION)
- アラーム音量(STREAM_ALARM)
- 音楽音量(STREAM_MUSIC)
- システム音量(STREAM_SYSTEM)
- ボイス音量(STREAM_VOICE_CALL)
今回は上に示した画面のように、シークバーのつまみで
着信音量をコントロールするアプリを作成してみたいと思います。
続きは以下からどうぞ。
まずレイアウトファイルですが以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <? xml version = "1.0" encoding = "utf-8" ?> android:orientation = "vertical" android:layout_width = "fill_parent" android:layout_height = "fill_parent" > < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Ring Volume:" android:id = "@+id/ringVolText" android:textSize = "32px" /> < SeekBar android:id = "@+id/ringVolSeekBar" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:max = "10" ></ SeekBar > </ LinearLayout > |
現在の設定値を表示するためのTextViewとボリューム調整用のシークバーを用意しています。
次にソースコードです。
まず、AudioManagerオブジェクトを作成します。
1 | AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); |
getSystemServiceでAndroidのAudioManagerを取得します。
オブジェクトを作成したらgetStreamVolumeメソッドを使って音量を取得します。
1 | int ringVolume = am.getStreamVolume(AudioManager.STREAM_RING); //着信音量の取得 |
着信音量を設定する場合はsetStreamVolumeを使います。
1 | am.setStreamVolume(AudioManager.STREAM_RING, 50 , 0 ); //着信音量を50に設定 |
シークバーと組み合わせて音量を調整する場合、たとえば以下のような実装にします。
シークバーの使い方については「シークバーを利用する方法」を参考にしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | notifyVolSeekBar = (SeekBar)findViewById(R.id.notifyVolSeekBar); //着信音量シークバー notifyVolText = (TextView)findViewById(R.id.notifyVolLabel); //着信音量TextView ringVolSeekBar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub ringVolText.setText( "Ring Volume:" +progress); //TextViewに設定値を表示 am.setStreamVolume(AudioManager.STREAM_RING, progress, 0 ); //着信音量設定 } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } ); |
2 Comments