1.简介

Android为我们提供的(音量大小控制)的API: AudioManager(音频管理器)了,该类位于Android.Media包下,提供了音量控制与铃声模式相关操作。 




2.获得AudioManager对象实例

AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);




3.相关方法详解


3.1.

方法:adjustVolume(int direction, int flags) 

作用:控制手机音量,调大或者调小一个单位,根据第一个参数进行判断 。

参数:AudioManager.ADJUST_LOWER,可调小一个单位; AudioManager.ADJUST_RAISE,可调大一个单位


3.2.

方法:adjustStreamVolume(int streamType, int direction, int flags): 

作用:同上,不过可以选择调节的声音类型 

参数1:streamType参数,指定声音类型,有下述几种声音类型: 

STREAM_ALARM:手机闹铃 STREAM_MUSIC:手机音乐 

STREAM_RING:电话铃声 STREAM_SYSTEAM:手机系统 

STREAM_DTMF:音调 STREAM_NOTIFICATION:系统提示 

STREAM_VOICE_CALL:语音电话 

参数2:上面那个一样,调大或调小音量的。

参数3:可选的标志位,比如AudioManager.FLAG_SHOW_UI,显示进度条,AudioManager.PLAY_SOUND:播放声音。


3.3.

方法:setStreamVolume(int streamType, int index, intflags)

作用:直接设置音量大小。


3.4.

方法:getMode( )

作用:返回当前的音频模式。


3.5.

方法:setMode( )

作用:设置声音模式 。

返回值:有下述几种模式: 

MODE_NORMAL(普通), MODE_RINGTONE(铃声)

MODE_IN_CALL(打电话),MODE_IN_COMMUNICATION(通话)


3.6.

方法:getRingerMode( )

作用:返回当前的铃声模式。


3.7.

方法:setRingerMode(int streamType)

作用:设置铃声模式 。

返回值:有下述几种模式: 

如RINGER_MODE_NORMAL(普通)

RINGER_MODE_SILENT(静音)

RINGER_MODE_VIBRATE(震动)


3.8.

方法:getStreamVolume(int streamType)

作用:获得手机的当前音量,最大值为7,最小值为0,当设置为0的时候,会自动调整为震动模式


3.9.

方法:getStreamMaxVolume(int streamType)

作用:获得手机某个声音类型的最大音量值。


3.10.

方法:setStreamMute(int streamType,boolean state)

作用:将手机某个声音类型设置为静音。


3.11.

方法:setSpeakerphoneOn(boolean on)

作用:设置是否打开扩音器。


3.12.

方法:setMicrophoneMute(boolean on)

作用:设置是否让麦克风静音。


3.13.

方法:isMicrophoneMute()

作用:判断麦克风是否静音或是否打开。


3.14.

方法:isMusicActive()

作用:判断是否有音乐处于活跃状态。


3.15.

方法:isWiredHeadsetOn()

作用:判断是否插入了耳机。


3.16.

方法:abandonAudioFocus(AudioManager.OnAudioFocusChangeListenerl)

作用:放弃音频的焦点。


3.17.

方法:adjustSuggestedStreamVolume(int,int suggestedStreamType intflags)

作用:调整最相关的流的音量,或者给定的回退流。


3.18.

方法:getParameters(String keys)

作用:给音频硬件设置一个varaible数量的参数值。


3.19.

方法:getVibrateSetting(int vibrateType)

作用:返回是否该用户的振动设置为振动类型。


3.20.

方法:isBluetoothA2dpOn()

作用:检查是否A2DP蓝牙耳机音频路由是打开或关闭。


3.21.

方法:isBluetoothScoAvailableOffCall()

作用:显示当前平台是否支持使用SCO的关闭调用用例。


3.22.

方法:isBluetoothScoOn()

作用:检查通信是否使用蓝牙SCO。


3.23.

方法:loadSoundEffects()

作用:加载声音效果。


3.24.

方法:playSoundEffect((int effectType, float volume)

作用:播放声音效果。


3.25.

方法:egisterMediaButtonEventReceiver(ComponentName eventReceiver) 

作用:注册一个组件MEDIA_BUTTON意图的唯一接收机。


3.26.

方法:requestAudioFocus(AudioManager.OnAudioFocusChangeListener l,int streamType,int durationHint) 

作用:请求音频的焦点。


3.27.

方法:setBluetoothScoOn(boolean on)

作用:要求使用蓝牙SCO耳机进行通讯。


3.28.

方法:startBluetoothSco/stopBluetoothSco()

作用:启动/停止蓝牙SCO音频连接。


3.29.

方法:unloadSoundEffects()

作用:卸载音效。




4.代码实现Demo


4.1.获取实例




4.2.播放



4.3.停止



4.4.高音量



4.5.低音量



4.6.静音




附:AudioManager官方链接

http://androiddoc.qiniudn.com/reference/android/media/AudioManager.html

更多相关文章

  1. Flutter的一生
  2. Android解析WindowManagerService(三)Window的删除过程
  3. 2018最新大厂Android面试真题
  4. 单元测试--Android单元测试学习总结(junit+Mockito+PowerMockito)
  5. android开发之Android(安卓)ActionBar完全解析
  6. Android(安卓)Volley完全解析(三),定制自己的Request
  7. Android之SQLite开发(2)—SQLiteOpenHelper类
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android实现微信自动抢红包的程序
  2. Android(安卓)SDK Manager Proxy on MAC
  3. android中不同activity之间共享数据
  4. 我的第一个开源android app[哇靠百科]
  5. ubuntu+ndk编译ffmpeg
  6. 关于 Eclipse 导出 Android项目 JavaDoc
  7. 导入已有工程和更换工作空间
  8. Android通过PHP连接MySQL(用到Json)
  9. 【起航计划 014】2015 起航计划 Android(
  10. Android蓝牙栈bluez使用方法