我目前正在开发一款输入法,其中有按钮点击的声音。在设置屏幕中有一个选项可以更改声音的音量。SeekBar值从0.0到1.0。现在,我尝试让用户在设置屏幕中配置按钮音量,之后获取该值并将其保存为mSoundVol
参数。因此,对于点击声音,我编写了以下方法:
float soundVolume;
int maxVolume, sound;
switch (primaryCode) {
case Keyboard.KEYCODE_DELETE:
maxVolume = mAudioManager.getStreamMaxVolume(mAudioManager.FX_KEYPRESS_DELETE);
sound = mAudioManager.FX_KEYPRESS_DELETE;
Log.d(TAG+ "-volume", "chosen sound: mAudioManager.FX_KEYPRESS_DELETE");
break;
case ASCII_ENTER:
maxVolume = mAudioManager.getStreamMaxVolume(mAudioManager.FX_KEYPRESS_RETURN);
sound = mAudioManager.FX_KEYPRESS_RETURN;
Log.d(TAG+ "-volume", "chosen sound: mAudioManager.FX_KEYPRESS_RETURN");
break;
case ASCII_SPACE:
maxVolume = mAudioManager.getStreamMaxVolume(mAudioManager.FX_KEYPRESS_SPACEBAR);
sound = mAudioManager.FX_KEYPRESS_SPACEBAR;
Log.d(TAG+ "-volume", "chosen sound: mAudioManager.FX_KEYPRESS_SPACEBAR");
break;
default:
maxVolume = mAudioManager.getStreamMaxVolume(mAudioManager.FX_KEYPRESS_STANDARD);
sound = mAudioManager.FX_KEYPRESS_STANDARD;
Log.d(TAG + "-volume", "chosen sound: mAudioManager.FX_KEYPRESS_STANDARD");
}
soundVolume = maxVolume * mSoundVol;
Log.d(TAG+ "-volume", "current max volume: " + maxVolume + " current volume setting: " +mSoundVol * 100 +"%" + " volume result: " + soundVolume);
mAudioManager.playSoundEffect(sound, soundVolume);
但是由于某些原因,这并没有改变用户听到的声音大小。
有人能告诉我在AudioManager方面我做错了什么吗?
谢谢。