Android音量获取——常备混淆的东西

来源:互联网 发布:数据分析师 年龄 编辑:程序博客网 时间:2024/04/28 02:38

今天在项目中遇到一个需求,利用seekbar来实现控制音量的大小。


本以为一个很简单的事情(确实是一个很简单的事情),但是刚开始却实现不了我想要的效果。经过一番修改、查找终于解决了。而在解决过程中,也发现了自己对android一些地方认识的不足之处。


那么,就事论事。今天暂且说一下音量这一块吧。


android系统中的声音有系统音量、通话音量、铃声音量、音乐音量、提示声音音量(我之前一直以为android中就只有一种音量:系统音量(自学的不全面。。。。。))。


那么下面就逐次介绍一下这几种音量的获取方法把


获取这几种音量都需要一个共同的控制音量的类AudioManager (具体干嘛的自己百度 一下就可以)


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


int max;//最大音量

int current;//当前音量


//系统音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );


//通话音量

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

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


//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );


//音乐音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );

current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );


//提示声音音量

max = am.getStreamMaxVolume( AudioManager.STREAM_ALARM );

current = sm.getStreamVolume( AudioManager.STREAM_ALARM );