獲取和設定系統音量
音訊流型別
有不同的鈴聲流配置檔案。他們每個人都有不同的音量。
這裡的每個例子都是為 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);