android调节音量——AudioManager的应用
16lz
2022-01-05
Android中可以通过程序获取系统手机的铃声和音量。同样,也可以设置铃声和音量。Android中给出了AudioManager类来实现音量获取、音量控制。
本篇基于 Android API 中的 AudioManager 作讲述,最后给出实例。
下面是本篇大纲:
- 1、认识 AudioManager
- 2、AudioManager 主要方法介绍
- 3、参数解释
1、认识 AudioManager
AudioManager 类位于 android.Media 包中,该类提供访问控制音量和钤声模式的操作。
2、AudioManager 主要方法介绍
邮于 AudioManager 该类方法过多,这里只讲述几个比较常用到的方法:
- 方法:adjustStreamVolume(int streamType, int direction, int flags)
streamType为铃声类型,例如:AudioManager.STREAM_VOICE_CALL、AudioManager.STREAM_SYSTEM等,direction当传入的第一个参数为 AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入 AudioManager.ADJUST_RAISE 时,则可以将音量调大一个单位。flags为标志位。 - 方法:getMode()
解释:返回当前音频模式。例如:MODE_NORMAL
,MODE_RINGTONE
,MODE_IN_CALL
orMODE_IN_COMMUNICATION
- 方法:getRingerMode()
解释:返回当前的铃声模式。例如RINGER_MODE_NORMAL
,RINGER_MODE_SILENT
, orRINGER_MODE_VIBRATE
. - 方法:getStreamVolume(int streamType)
解释:取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。 - 方法:setStreamVolume(int streamType, int index, int flags)
解释:改变铃声音量,解释同1,index为声音大小。 - 方法:setMode(int mode)
解释:改变音频模式。见get方法 - 方法:setRingerMode(int ringerMode)
解释:改变铃声模式。见get方法
streamType常用:
- STREAM_ALARM警报
- STREAM_MUSIC音乐回放即媒体音量
- STREAM_NOTIFICATION窗口顶部状态栏Notification,
- STREAM_RING铃声
- STREAM_SYSTEM系统
- STREAM_VOICE_CALL通话
- STREAM_DTMF双音多频,拨号键的声音
- direction,是调整的方向,增加或减少,可以是:
- ADJUST_LOWER降低音量
- ADJUST_RAISE升高音量
- ADJUST_SAME保持不变,这个主要用于向用户展示当前的音量
- flags,是附加参数:
- FLAG_PLAY_SOUND调整音量时播放声音
- FLAG_SHOW_UI调整时显示音量条,就是按音量键出现的界面
- FLAG_REMOVE_SOUND_AND_VIBRATE无振动无声音
- FLAG_ALLOW_RINGER_MODESWhether to include ringer modes as possible options when changing volume.
- FLAG_VIBRATEWhether to vibrate if going into the vibrate ringer mode
***********************************************************************
*转载务必在明显处注明:http://blog.csdn.net/xyz_lmn *
* 作者:张兴业 *
* 邮箱:xy-zhang@163.com *
***********************************************************************
参考: http://developer.android.com/reference/android/media/AudioManager.html 实例: http://code.google.com/p/app-soundmanager http://mobile.51cto.com/android-309353.htm
/**
* @author 张兴业
* 邮箱: xy-zhang#163.com
* android开发进阶群: 278401545
*
*/
更多相关文章
- Intent的匹配与查找
- android OKHttp的基本使用详解
- Java事件模型与Android事件模型的比较
- Visual Studio 跨平台開發實戰(5) - Xamarin Android(安卓)多頁
- 获取Android的Java源代码并在Eclipse中关联查看的最新方法
- 总结Content Provider的使用
- android入门教程(十六)之-- 使用Intent传递数据
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用