Browse Source

音量调节控制优化

weizhengliang 6 months ago
parent
commit
36825c29c5

+ 17 - 24
android_door/src/main/h10_3128/java/com/wdkl/app/ncs/callingdoor/helper/VoiceManagerUtil.java

@@ -118,14 +118,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setAlarmVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -135,14 +132,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setMusicVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -152,14 +146,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setRingVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -169,14 +160,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setSystemVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -186,14 +174,19 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setCallVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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);
     }
 
 }

+ 17 - 24
android_door/src/main/h10_3128_chile/java/com/wdkl/app/ncs/callingdoor/helper/VoiceManagerUtil.java

@@ -118,14 +118,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setAlarmVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -135,14 +132,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setMusicVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -152,14 +146,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setRingVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -169,14 +160,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setSystemVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -186,14 +174,19 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setCallVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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);
     }
 
 }

+ 17 - 24
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/helper/VoiceManagerUtil.java

@@ -118,14 +118,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setAlarmVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -135,14 +132,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setMusicVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -152,14 +146,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setRingVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -169,14 +160,11 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setSystemVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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));
     }
 
     /**
@@ -186,14 +174,19 @@ public class VoiceManagerUtil {
      * @param percent (百分比;只能0--100之间)
      */
     public static void setCallVoice(Context context, int percent) {
-        if (percent < 10) {
-            percent = 10;
-        }
         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);
     }
 
 }