获取和设置系统音量

音频流类型

有不同的铃声流配置文件。他们每个人都有不同的音量。

这里的每个例子都是为 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);