瀏覽代碼

增加音量调节限制,禁止设置为0

weizhengliang 6 月之前
父節點
當前提交
0c4bd6658b

+ 17 - 9
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/util/VoiceManagerUtil.java

@@ -131,8 +131,8 @@ public class VoiceManagerUtil {
         float vPercent=((float)percent)/100f;
         vPercent = vPercent < 0 ? 0 : vPercent;
         vPercent = vPercent > 1 ? 1 : vPercent;
-        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        audioManager.setStreamVolume(AudioManager.STREAM_ALARM, (int) (getAlarmMax(context) * vPercent), 0);
+
+        setVolume(context, AudioManager.STREAM_ALARM, (int) (getAlarmMax(context) * vPercent));
     }
 
     /**
@@ -145,8 +145,8 @@ public class VoiceManagerUtil {
         float vPercent=((float)percent)/100f;
         vPercent = vPercent < 0 ? 0 : vPercent;
         vPercent = vPercent > 1 ? 1 : vPercent;
-        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, (int) (getMusicMax(context) * vPercent), 0);
+
+        setVolume(context, AudioManager.STREAM_MUSIC, (int) (getMusicMax(context) * vPercent));
     }
 
     /**
@@ -159,8 +159,8 @@ public class VoiceManagerUtil {
         float vPercent=((float)percent)/100f;
         vPercent = vPercent < 0 ? 0 : vPercent;
         vPercent = vPercent > 1 ? 1 : vPercent;
-        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        audioManager.setStreamVolume(AudioManager.STREAM_RING, (int) (getRingMax(context) * vPercent), 0);
+
+        setVolume(context, AudioManager.STREAM_RING, (int) (getRingMax(context) * vPercent));
     }
 
     /**
@@ -173,8 +173,8 @@ public class VoiceManagerUtil {
         float vPercent=((float)percent)/100f;
         vPercent = vPercent < 0 ? 0 : vPercent;
         vPercent = vPercent > 1 ? 1 : vPercent;
-        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, (int) (getSystemMax(context) * vPercent), 0);
+
+        setVolume(context, AudioManager.STREAM_SYSTEM, (int) (getSystemMax(context) * vPercent));
     }
 
     /**
@@ -187,8 +187,16 @@ public class VoiceManagerUtil {
         float vPercent=((float)percent)/100f;
         vPercent = vPercent < 0 ? 0 : vPercent;
         vPercent = vPercent > 1 ? 1 : vPercent;
+
+        setVolume(context, AudioManager.STREAM_VOICE_CALL, (int) (getCallMax(context) * vPercent));
+    }
+
+    public static void setVolume(Context context, int streamType, int volume) {
+        if (volume < 1) {
+            volume = 1;
+        }
         AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, (int) (getCallMax(context) * vPercent), 0);
+        audioManager.setStreamVolume(streamType, volume, 0);
     }
 
     public static void setSpeakerOn(Context context, boolean speakerOn) {