android 静音实现方法
类似语音app实现静音与取消静音
1. 模拟按键
模拟静音键
2.调用静音接口
取消静音时,音量条UI显示音量进度与进度值
private AudioManager mAudioManager = null;
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mAudioManager.adjustSuggestedStreamVolume(AudioManager.ADJUST_TOGGLE_MUTE, AudioManager.STREAM_MUSIC, 1);
3. 音量变化 监听广播
frameworks/base/media/java/android/media/AudioManager.java
//VOLUME_CHANGED 音量变化
"android.media.VOLUME_CHANGED_ACTION")
//STREAM_MUTE_CHANGE 静音变化
"android.media.STREAM_MUTE_CHANGED_ACTION")
4. 静音mute时,getStreamVolume获取音量值为0
可通过getLastAudibleStreamVolume(非对外开放接口) 通过反射获取value
int value=0;
try {
AudioManager mAudioManager1 = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
Class clazz = Class.forName("android.media.AudioManager");
Method method = clazz.getDeclaredMethod("getLastAudibleStreamVolume",int.class);//方法名,参数类型
method.setAccessible(true);
value = (int) method.invoke(mAudioManager1, AudioManager.STREAM_MUSIC);//AudioManager.STREAM_MUSIC
} catch (Exception e) {
e.printStackTrace();
}