獲取和設定系統音量

音訊流型別

有不同的鈴聲流配置檔案。他們每個人都有不同的音量。

這裡的每個例子都是為 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);