El volumen de nuestro teléfono móvil generalmente lo ajusta el usuario a través del botón de volumen en el costado del teléfono, pero a veces también necesitamos ajustar el volumen nosotros mismos, luego debemos tener una comprensión completa del ajuste de volumen de Android. Hoy presentaré algunos ajustes de volumen en Android.
1. Introducción a los tipos de tonos de llamada
Para ajustar el volumen, debemos tener conocimiento de los tipos de tonos de llamada en el sistema Android. El sistema Android China tiene 6 tipos de tonos de llamada, que son tonos de llamada, tonos de sistema, tonos de llamada, tonos de medios, tonos de alarma y tonos de notificación. Enumero una tabla, que contiene varios tonos de llamada y las marcas correspondientes.
Tipo de anillo de la clase AudioManager |
Nombre del tono de llamada | Descripción |
STREAM_VOICE_CALL | Tono de llamada | |
STREAM_SYSTEM | Tono del sistema | |
STREAM_RING | Tono de llamada | Tonos de timbre para llamadas entrantes y mensajes de texto |
STREAM_MUSIC | Sonido multimedia | Sonido de audio, video, juegos, etc. |
STREAM_ALARM | Tono de alarma | |
STREAM_NOTIFICATION | Tono de notificación |
2. Introducción y adquisición de AudioManager
La herramienta para administrar el volumen de estos tonos de llamada es AudioManager, y el objeto se obtiene del servicio del sistema AUDIO_SERVICE. El método de obtención es el siguiente:
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
3. Métodos comunes de AudioManager
- getStreamMaxVolume: obtiene el volumen máximo del tipo de tono de llamada especificado.
- getStreamVolume: Obtiene el volumen actual del tipo de tono de llamada especificado.
- getRingerMode: obtenga el modo de timbre del tipo de tono de timbre especificado. La descripción del valor del modo de anillo se muestra en la siguiente tabla:
tabla 1 | |
Modo de timbre de la clase AudioManager | Descripción |
RINGER_MODE_NORMAL | normal |
RINGER_MODE_SILENT | Silencio |
RINGER_MODE_VIBRATE | conmoción |
- setStreamVolume: establece el volumen actual del tipo de tono de llamada especificado.
- setRingerMode: establece el modo de timbre del tipo de timbre especificado. Consulte la Tabla 1 para obtener una descripción del valor del modo de timbre.
- AdjustStreamVolume: ajusta el volumen actual del tipo de tono de llamada especificado. El primer parámetro es el tipo de tono de llamada; el segundo parámetro es la dirección de ajuste, y el valor de la dirección de ajuste de volumen se describe en la Tabla 2. El tercer parámetro indica la acción adicional durante el ajuste. Generalmente, FLAG_PLAY_SOUND se utiliza para indicar un tono de llamada durante ajustamiento.
Tabla 2 | |
Dirección de ajuste de volumen de la clase AudioManager | Descripción |
ADJUST_RAISE | Incrementar un nivel |
ADJUST_LOWER | Abajo un nivel |
ADJUST_SAME | Esperar |
ADJUST_MUTE | Silencio |
ADJUST_UNMUTE | Activar sonido |
ADJUST_TOGGLE_MUTE | El silencio se invierte, es decir, se establece el silencio si no está en silencio y se cancela el silencio si está en silencio. |
4. La diferencia entre setStreamVolume y adjustStreamVolume
Se pueden usar los métodos setStreamVolume y adjustStreamVolume para establecer el volumen. La diferencia es que setStreamVolume ajusta directamente el volumen al valor objetivo, generalmente se usa junto con la barra de arrastre; mientras que adjustStreamVolume se basa en el volumen actual, y luego aumenta, disminuye o ajusta Silenciar.
5. Ejemplo de uso
Damos un ejemplo de cómo ajustar el volumen de los medios. El valor del segundo parámetro de setStreamVolume debe usarse junto con getStreamMaxVolume para obtener el valor de volumen máximo del dispositivo actual.
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,10,AudioManager.FLAG_PLAY_SOUND);
He escrito mucho sobre el ajuste de volumen en Android. Si tiene algún hallazgo nuevo, deje un mensaje y hágamelo saber.