我使用MediaPlayer
播放声音,我想获取当前流的音量,并使用setVolume
方法将其设置为媒体播放器的音量。
问题在于,如果我采用这样的音量值:
audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
我收到的值是卷的索引,而setSound
方法需要0到1之间的值。
如何将索引转换为0到1之间的值?
答案 0 :(得分:1)
只需将当前卷索引除以流的最大卷索引
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float desiredValue = currentVolume / maxVolume;
然后您可以根据需要使用该值(它在0和1之间)
答案 1 :(得分:0)
您可以使用以下代码将值设置在0-1之间......
private final static int MAX_VOLUME = 100;
final float volume = (float) (1 - (Math.log(MAX_VOLUME - soundVolume) /
Math.log(MAX_VOLUME)));
mediaPlayer.setVolume(volume, volume);