O volume do nosso telefone celular é geralmente ajustado pelo usuário através do botão de volume na lateral do telefone, mas às vezes também precisamos ajustar o volume nós mesmos, então precisamos ter uma compreensão abrangente do ajuste de volume do Android. Hoje vou apresentar alguns ajustes de volume no Android.
1. Introdução aos tipos de toques
Para ajustar o volume, devemos ter uma compreensão dos tipos de toques no sistema Android. O sistema Android da China tem 6 tipos de tons de toque, que são tons de chamada, tons do sistema, tons de toque, tons de mídia, tons de alarme e tons de notificação. Eu listo uma tabela, que contém vários toques e marcas correspondentes.
Tipo de anel da classe AudioManager |
Nome do toque | Descrição |
STREAM_VOICE_CALL | Tom de chamada | |
STREAM_SYSTEM | Tom do sistema | |
STREAM_RING | Toque | Tons de toque para chamadas recebidas e mensagens de texto |
STREAM_MUSIC | Som de mídia | Áudio, vídeo, jogo, som etc. |
STREAM_ALARM | Tom de alarme | |
STREAM_NOTIFICATION | Tom de notificação |
2. Introdução e aquisição do AudioManager
A ferramenta de gerenciamento do volume desses ringtones é o AudioManager, e o objeto é obtido no serviço do sistema AUDIO_SERVICE. O método de obtenção é o seguinte:
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
3. Métodos comuns de AudioManager
- getStreamMaxVolume: Obtenha o volume máximo do tipo de toque especificado.
- getStreamVolume: obtém o volume atual do tipo de toque especificado.
- getRingerMode: obtém o modo de toque do tipo de toque especificado. A descrição do valor do modo de toque é mostrada na tabela a seguir:
tabela 1 | |
Modo de toque da classe AudioManager | Descrição |
RINGER_MODE_NORMAL | normal |
RINGER_MODE_SILENT | Mudo |
RINGER_MODE_VIBRATE | choque |
- setStreamVolume: Defina o volume atual do tipo de toque especificado.
- setRingerMode: Defina o modo de toque do tipo especificado de toque. Consulte a Tabela 1 para a descrição do valor do modo de toque.
- AdjustStreamVolume: Ajuste o volume atual do tipo de toque especificado. O primeiro parâmetro é o tipo de toque; o segundo parâmetro é a direção de ajuste e o valor da direção de ajuste de volume é descrito na Tabela 2. O terceiro parâmetro indica a ação adicional durante o ajuste. Geralmente, FLAG_PLAY_SOUND é usado para indicar um toque durante ajustamento.
mesa 2 | |
Direção de ajuste de volume da classe AudioManager | Descrição |
ADJUST_RAISE | Aumenta um nível |
ADJUST_LOWER | Descer um nível |
ADJUST_SAME | Aguentar |
ADJUST_MUTE | Mudo |
ADJUST_UNMUTE | Com som |
ADJUST_TOGGLE_MUTE | O mudo é revertido, ou seja, defina mudo se não estiver mudo e cancele mudo se estiver mudo. |
4. A diferença entre setStreamVolume e AdjustStreamVolume
Os métodos setStreamVolume e AdjustStreamVolume podem ser usados para definir o volume. A diferença é que setStreamVolume ajusta diretamente o volume para o valor de destino, geralmente usado em conjunto com a barra de arrastar; enquanto o AdjustStreamVolume é baseado no volume atual e, em seguida, aumenta, diminui ou ajusta. Mudo.
5. Exemplo de uso
Damos um exemplo de ajuste do volume da mídia. O valor do segundo parâmetro de setStreamVolume deve ser usado em conjunto com getStreamMaxVolume para obter o valor de volume máximo do dispositivo atual.
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,10,AudioManager.FLAG_PLAY_SOUND);
Já escrevi muito sobre o ajuste de volume no Android. Se você tiver novidades, deixe uma mensagem e me avise.