今天在项目中遇到一个需求,利用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 );