Android里的音量调节

步骤1:或许系统音量对象的实例

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

 

步骤2:获取各种音量情报

Android的音量信息一共有7种。

 

①通话音量

int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );

int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );

Log.d(”VIOCE_CALL”, “max : ” + max + ” current : ” + current);

②系统音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );

Log.d(”SYSTEM”, “max : ” + max + ” current : ” + current);

③铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );

Log.d(”RING”, “max : ” + max + ” current : ” + current);

④音乐音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );

Log.d(”MUSIC”, “max : ” + max + ” current : ” + current);

⑤提示声音音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_NOTIFICATION );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_NOTIFICATION );

Log.d(”NOTIFICATION”, “max : ” + max + ” current : ” + current); 

⑥闹铃音量 

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );

Log.d(”ALARM”, “max : ” + max + ” current : ” + current);

⑦DTMF(Double Tone MulitiFrequency,双音多频)

 

设置音量的方法也很简单,AudioManager提供了方法:

public void setStreamVolume(int streamType, int index, int flags)

 

其他:

各种音量有不同的播放方式,例如,音乐就应该用MediaPlayer来播放。

private MediaPlayer mediaPlayer=null; //声频

mediaPlayer=MediaPlayer.create(AudioActivity.this, R.raw.music);

mediaPlayer.setLooping(true);//设置循环播放

mediaPlayer.start();//播放声音

而铃声就应该用RingtoneManager来播放。

 

如果混用的话,参照的音量就会不正确。

这个时候可以通过设定流类型来改善。

例如

Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

mRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri);

 

RingtoneManager是播放铃声的,如果用来播放通知音,

就需要把声音的流类型改成AudioManager.STREAM_NOTIFICATION

mRingtone.setStreamType(AudioManager.STREAM_NOTIFICATION );

你可能感兴趣的:(android)