问题
I am writing an application which handles the following:
- Silent - Makes the phone volume silent
- Low - Makes the phone volume 1 point above the silent
- Medium - Makes the phone volume medium
- High - Makes the phone volume maximum
Phone volume includes Ringer, video, audio , games volume etc.
I know how to achieve Silent mode through AudioManager
. But for 2-4 , I could not find any helpful code snippets. What do I need to do?
回答1:
Add this in onCreate()
method of your code and then play around with the 0 value to increase or decrease the volume where 0 means OFF.
AudioManager mgr=null;
mgr=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_ALARM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
回答2:
Check out http://thinkandroid.wordpress.com/2010/04/05/dealing-with-the-android-media-player/
The steps are:
- get the audio man.
- fetch the required stream.
- call appropriate method on stream.
e.g.:
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
to get max vol:
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
来源:https://stackoverflow.com/questions/9164347/setting-the-android-system-volume