Android里的音量调节

本文介绍了Android系统中音量的获取与控制方法,并详细解释了不同类型的音量及其对应的获取方式。此外,还提供了使用MediaPlayer和RingtoneManager进行声音播放的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.sina.com.cn/s/blog_54109a580101b8c1.html


步骤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, intflags)


 

其他:

各种音量有不同的播放方式,例如,音乐就应该用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 );



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值