SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); int soundID = soundPool.load(context, R.raw.lalala, 1); soundPool.play(soundID, 1.0F, 1.0F, 1, 0, 1.0F);
3行目、playメソッドの第2引数(音量[左])・第3引数(音量[右])が1.0のため、常に最大音量となる(範囲:0.0~1.0)のが問題。現在の着信音量を取得し、その音量で再生するのが良いと思う。
AudioManager audioManager = (AudioManager)getSystemService(AUDIO_SERVICE); int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_RING); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); float volumeRate = (float)currentVolume / maxVolume; soundPool.play(soundIDs[i], volumeRate, volumeRate, 0, 0, 1.0F);
現在の音量(currentVolume)と最大音量(maxVolume)を取得して、0.0~1.0に落とし込む感じ。
0 件のコメント:
コメントを投稿