2010年10月26日火曜日

Android アプリで設定音量を取得&再生音量に設定する。

アプリでシステムの着信音量設定を取得して、効果音をその設定音量に合わせるには、以下のとおり。

使用パッケージはandroid.media.AudioManagerとandroid.media.SoundPool。
soundpool.playと同時に音量を設定することもできるし、事前にsoundpool.setVolumeすることもできる。

package jp.mediba.android.testapp;

import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;

public class Out extends Activity {

 SoundPool soundPool;
 int[] sounds = new int[1];
 
 public void onCreate(Bundle savedInstanceState) {
     
  super.onCreate(savedInstanceState);
  setContentView(R.layout.out);

  int[] sounds = new int[1];
  SoundPool soundPool;
  soundPool = new SoundPool(1, AudioManager.STREAM_RING, 0);
  sounds[0] = soundPool.load(this, R.raw.omikuji_bar, 1);

  AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  int ringVol = audio.getStreamVolume(AudioManager.STREAM_RING);
  soundPool.play(sounds[0], (float)ringVol, (float)ringVol, 0, 0, 1.0F);
 }
}