Android 系统音量控制

http://www.cnblogs.com/maxinliang/archive/2013/07/02/3167212.html

http://blog.csdn.net/hufeng882412/article/details/7310131


获取系统音量

通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单!

设置音量的方法也很简单,AudioManager提供了方法:
publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有内置的常量,去文档里面就可以看到。

JAVA代码:
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

//通话音量

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_ALARM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );
Log.d(“ALARM”, “max : ” + max + ” current : ” + current);
ps:
  游戏过程中只允许调整多媒体音量,而不允许调整通话音量。
  setVolumeControlStream(AudioManager.STREAM_MUSIC);
  长时间不动,不允许黑屏,View.setKeepScreenOn(true);
  估计manifest文件中需要注册权限吧

 

调节媒体音量

AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);

重写 Activity 的 onKeyDown 方法

?
@Override
public boolean onKeyDown( int keyCode, KeyEvent event) {
     switch (keyCode) {
     case KeyEvent.KEYCODE_VOLUME_UP:
         audio.adjustStreamVolume(
             AudioManager.STREAM_MUSIC,
             AudioManager.ADJUST_RAISE,
             AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
         return true ;
     case KeyEvent.KEYCODE_VOLUME_DOWN:
         audio.adjustStreamVolume(
             AudioManager.STREAM_MUSIC,
             AudioManager.ADJUST_LOWER,
             AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
         return true ;
     default :
         break ;
     }
     return super .onKeyDown(keyCode, event);
}

------------------------------------------------------------------

   //音量控制,初始化定义  
    AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  
    //最大音量  
    int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);  
    //当前音量  
    int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);  


直接控制音量的多少:


    if(isSilent){  
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);  
    }else{  
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, tempVolume, 0); //tempVolume:音量绝对值  
    }  



以一步步长控制音量的增减,并弹出系统默认音量控制条:

//降低音量,调出系统音量控制  
if(flag == 0){  
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,  
                            AudioManager.FX_FOCUS_NAVIGATION_UP);  
}  
//增加音量,调出系统音量控制  
else if(flag == 1){  
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,  
                            AudioManager.FX_FOCUS_NAVIGATION_UP);  
}  



不需要注册权限。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值