做对讲播放的时候需要打开扩音器,使用AudioManager,下面是对它的介绍.
AudioManager
AudioManager是用来控制音量和铃声的Framework层的一个Manager类,管理系统的音量.下面看下它的api.
// 调整手机指定类型的声音
public void adjustStreamVolume (int streamType, int direction, int flags)
streamType:调整声音流的类型:铃声,媒体(音乐,视频..),闹钟,通话,系统提示....
STREAM_VOICE_CALL
STREAM_SYSTEM
STREAM_RING
STREAM_MUSIC
STREAM_ALARM :手机闹铃的声音。
STREAM_NOTIFICATION
direction:音量如何变化,增大,减小,相等
ADJUST_LOWER
ADJUST_RAISE
ADJUST_SAME.
flags 可选的标记
// 返回当前的音频模式
public int getMode ()
MODE_NORMAL
MODE_RINGTONE 铃声
MODE_IN_CALL 通话
MODE_IN_COMMUNICATION
// 返回当前的铃声模式。
public int getRingerMode ()
RINGER_MODE_NORMAL 正常
RINGER_MODE_SILENT 静音
INGER_MODE_VIBRATE 震动
// 返回特定流的最大音量指数 当前音量
getStreamMaxVolume (int streamType)
getStreamVolume (int streamType)
//设置是否让麦克风静音 扬声器打开或关闭。
setMicrophoneMute (boolean on )
setSpeakerphoneOn (boolean on)
// 将手机的指定类型的声音调整为静音
setStreamMute (int streamType,boolean state )
//设置是否让麦克风静音
void setMicrophoneMute (boolean on )
主要使用的方法就是这些了,进行相应的设置即可.
打电话开启扩音
我们在打电话的时候需要开启扩音器,进行如下设置:
//设置声音模式
mAudioManager.setMode(AudioManager.MODE_IN_CALL);
//关闭麦克风
mAudioManager.setMicrophoneMute(false);
// 打开扬声器
mAudioManager.setSpeakerphoneOn(true);
注意需要关闭麦克风,不然会有很大的杂音