AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。

官方文档中注明了:Use Context.getSystemService(Context.AUDIO_SERVICE) to get an instance of this class.

所以我们可以通过下面的语句获得:

AudioManager audiomanage = (AudioManager)getAcitivity().getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我们定义的控制系统声音的对象。


这里只讲述几个比较常用到的方法:


adjustVolume(int direction, int flags)

用来控制手机音量大小,

当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,

传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。


adjustStreamVolume(int streamType, int direction, intflags)

(以步长)调节手机音量大小
参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)
参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
参数3:可选的标志位


setStreamVolume(int streamType, int index, intflags)

直接设置音量大小


getMode()

返回当前音频模式,如 NORMAL(普通), RINGTONE(铃声), orIN_CALL(通话)


setMode()

设置声音模式,可取值NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)

getRingerMode()

返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)

setRingerMode(int ringerMode)

改变铃声模式

getStreamVolume(int streamType)

取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。

getStreamMaxVolume(int streamType)

获得当前手机最大铃声。

setStreamMute(int streamType, boolean state)
静音或不静音音频流
设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。

//音量控制,初始化定义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);}


常用方法:
android audioManager获取音量:
先获取AudioManager实例,
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

//通话音量int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL ); int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL ); //系统音量int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM ); current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM ); //铃声音量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 = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM ); current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM ); 


更多相关文章

  1. Android——自定义音量调节控件
  2. Android------Button 添加声音效果(两种方式)
  3. Android(安卓)6.0添加自定义铃声
  4. android音量控制曲线和调用过程
  5. Android音频和震动的基本实现
  6. android静音的实现
  7. Android文档学习09_多媒体1
  8. Android(安卓)情景模式设置
  9. 随手记----Android仿iOS音量调节的效果

随机推荐

  1. Android黑科技动态加载(三)之动态加载资
  2. Android保证service不被杀掉-增强版: 进
  3. android 样式表-selector
  4. android apk的签名和权限问题
  5. android TextView字体颜色根据焦点点击变
  6. Android里的动画(补间动画,帧动画,属性动画)
  7. Android开发指南-用户界面-绘制视图
  8. ListView的分割线相关属性
  9. [整] Android ListView 去除边缘阴影、选
  10. Android 如何使用GPU硬件加速