听筒播放Mp3
下载Demohttp://download.csdn.net/detail/wds1181977/8114967
切换为听筒模式声音由听筒发出
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); am.setMode(AudioManager.MODE_IN_CALL);切换为其他模式
am.setMode(AudioManager.MODE_NORMAL);//正常模式,即在没有铃音与电话的情况 am.setMode(AudioManager.MODE_RINGTONE);//铃响模式 am.setMode(AudioManager.MODE_IN_CALL);//接通电话模式 am.setMode(AudioManager.MODE_IN_COMMUNICATION);//通话模式。
获取当前状态
mAudioMode = am.getMode()
判断音频路由模式
am. isSpeakerphoneOn(); //检查喇叭扩音器是否开着。若喇叭扩音器开着,返回true am. isBluetoothScoOn();/检查通信是否使用蓝牙SCO。 am. isBluetoothA2dpOn(); //检查A2DP音频路由到蓝牙耳机是否打开 音频到/从蓝牙耳机,返回ture am. isWiredHeadsetOn(); // 检查音频路由到有线耳机是否开着。若音频被路由到/从有线耳机,返回true am. isMusicActive();//检查是否有音乐是活动的
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
设置喇叭扩音器打开或关闭。
参数on 为true打开喇叭扩音器;为false关闭喇叭扩音器。
public void setSpeakerphoneOn (boolean on)
获取当前铃音模式
getRingerMode()
设置当前模式
public void setRingerMode (int ringerMode)
am.setRingerMode(RINGER_MODE_NORMAL);//铃音正常模式 am.setRingerMode(RINGER_MODE_SILENT);//铃音静音模式 静音且不会振动 am.setRingerMode(RINGER_MODE_VIBRATE);//铃音震动模式 会静音且会振动
获取音量类型和大小
//通话音量 max 最大音量 current当前音量 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 );
设置音量大小
int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//获取当前通话最大音量 am.setStreamVolume(AudioManager.STREAM_VOICE_CALL, maxVolume,AudioManager.USE_DEFAULT_STREAM_TYPE);}
/** * 参数1:声音类型, * 可取为STREAM_VOICE_CALL(通话)、 * STREAM_SYSTEM(系统声音)、 * STREAM_RING(铃声)、 * STREAM_MUSIC(音乐)、 * STREAM_ALARM(闹铃声) * 参数2:调整音量的方向,可取 * ADJUST_LOWER(降低)、 * ADJUST_RAISE(升高)、 * ADJUST_SAME * 参数3:可选的标志位 * @param position */ adjustStreamVolume(int streamType, int direction, intflags)
如
//降低音量,调出系统音量控制 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); }