我希望我的用户能够选择以尽可能高的音量播放闹铃声。
为此,我需要将媒体音量设置为最大,播放闹钟并将音量设置回原始状态。
为了测试我有一个带有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);
}
警报声音以原始音量播放,而不是以最大音量播放。
我做错了什么?
答案 0 :(得分:1)
mediaPlayer.start()
实际上并没有播放声音。它安排它尽快播放并立即返回。因此,在播放声音时,音量恢复正常。您需要使用http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html
在声音播放完毕后设置音量