我希望我的用户能够选择以尽可能高的音量播放警报声。
为此,我需要将媒体音量设置为最大,播放警报并将音量设置回原始状态。
为了进行测试,我有一个带有此事件的按钮onClick
:
public void playAlarm(View view) {
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
audio.setStreamVolume(AudioManager.STREAM_MUSIC, audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
MediaPlayer mediaPlayer = MediaPlayer.create(view.getContext(), R.raw.alarm);
mediaPlayer.start();
audio.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, AudioManager.FLAG_PLAY_SOUND);
}
警报声以原始音量播放,而不是最大音量。
我究竟做错了什么?