获取和设置系统音量
音频流类型
有不同的铃声流配置文件。他们每个人都有不同的音量。
这里的每个例子都是为 AudioManager.STREAM_RING
流类型编写的。然而,这不是唯一的。可用的流类型是:
STREAM_ALARM
STREAM_DTMF
STREAM_MUSIC
STREAM_NOTIFICATION
STREAM_RING
STREAM_SYSTEM
STREAM_VOICE_CALL
设定音量
要获取特定配置文件的音量,请致电:
AudioManager audio = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
当流的最大值未知时,此值非常有用:
AudioManager audio = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
int streamMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
这两个值的比率将给出相对体积(0 <体积<1):
float volume = ((float) currentVolume) / streamMaxVolume
将音量调节一步
要使流的音量提高一步,请调用:
AudioManager audio = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
audio.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_RAISE, 0);
要使流的音量降低一步,请调用:
AudioManager audio = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
audio.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_LOWER, 0);
将 MediaPlayer 设置为使用特定的流类型
MediaPlayer
类有一个辅助函数来执行此操作。
只需拨打 void setAudioStreamType(int streamtype)
:
MediaPlayer mMedia = new MediaPlayer();
mMedia.setAudioStreamType(AudioManager.STREAM_RING);