0

getVolume() メソッドは常に 1.0 を返します。電話をミュートし、音量を変更しましたが、メソッドを呼び出すといつでも 1f になります。何か不足していますか?

btnPlay.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v){
      float volume = getVolume();
      Log.i("inf", "Volume: " + volume);
      soundPlayID = soundPool.play(my_sound, volume, volume, 1, 0, 1f);
   }
});

private float getVolume(){
    AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
    float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    float maxVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    float volume = actualVolume / maxVolume;

    return volume;
}

コンソール:

ボリューム: 1.0

ボリューム: 1.0

ボリューム: 1.0

ボリューム: 1.0

4

1 に答える 1