Pular para o conteúdo

Bastidores

Como o volume por app funciona no Android sem root

Pela equipe llcloud 5 min de leitura

Resposta rápida

O Android define o volume por tipo de som, como mídia, toque e alarme, então todo app que toca mídia divide o mesmo controle. O AppVolume dá a cada app o próprio nível anexando um efeito de áudio à reprodução dele e subindo ou descendo o ganho. Descobrir qual app está tocando exige uma permissão de desenvolvedor, que o AppVolume obtém uma vez pela Depuração por Wi-Fi e um código de pareamento de seis dígitos, sem root, sem computador e sem serviço de acessibilidade.

Abaixe um jogo e o podcast abaixa junto. Aumente o GPS e a música dá um salto. Quem toca duas coisas ao mesmo tempo no Android esbarra nisso mais cedo ou mais tarde. Construímos o AppVolume para resolver isso, e o jeito como ele funciona diz muito sobre como o Android lida com som. Aqui vai, em palavras simples.

Por que o Android tem só um volume de mídia?

O Android não define o volume por app. Ele define o volume por tipo de som, que o Android chama de stream. Mídia é um stream, e toques, alarmes, notificações e chamadas têm cada um o seu. Quando você aperta as teclas de volume com algo tocando, você mexe no stream de mídia, e todo app que toca música, vídeo, jogos ou podcasts o divide.

Esse projeto mantém as coisas simples. As teclas de volume sempre fazem algo previsível, e um alarme nunca fica mudo porque um jogo se abaixou sozinho. O preço é que dois apps tocando mídia nunca ficam em níveis diferentes por conta própria. Nosso guia sobre definir um volume diferente para cada app cobre o que os celulares oferecem de fábrica, que na maioria é nada.

Como funcionam os outros apps de volume por app?

Muitos apps de volume observam qual app está na frente e trocam o único volume de mídia quando ele muda. Abra o jogo, o volume de mídia cai. Volte para o app de podcast, ele sobe. Isso pode funcionar para um app por vez, mas continua sendo um controle só. Dois apps tocando juntos, como música por baixo de um app de navegação, sempre dividem um nível.

Alguns desses apps também precisam de um serviço de acessibilidade, para ver qual app está na tela ou captar as teclas de volume. É uma permissão poderosa para um trabalho tão pequeno.

Como o AppVolume dá a cada app o próprio nível?

O Android tem um conjunto de efeitos de áudio, como equalizadores e processadores de dinâmica, que um app pode anexar a um trecho de reprodução, que o Android chama de sessão de áudio. Um deles consegue aumentar ou diminuir o ganho do som que passa por ele. O AppVolume anexa esse efeito às sessões de cada app para o qual você define um nível e ajusta o ganho a partir do seu controle.

Assim, a mudança acontece só no som daquele app, antes de ele chegar ao alto-falante. Um podcast a 80% e um jogo a 20% tocam de verdade nesses níveis ao mesmo tempo. O mesmo efeito é como o Pro amplifica um app baixo até 200% e desloca o balanço para a esquerda ou para a direita.

O AppVolume nunca ouve, grava nem envia o seu áudio. Ele não observa a sua tela nem as suas teclas de volume e não tem serviço de acessibilidade. Ele só sobe ou desce um nível.

Por que a configuração usa a Depuração por Wi-Fi e um código de pareamento?

Para anexar um efeito, o AppVolume precisa primeiro saber quais sessões existem e a qual app cada uma pertence. O serviço de áudio do sistema mantém um relatório de status que as lista, e o Android só deixa um app lê-lo com uma permissão pensada para desenvolvedores. Um app não consegue pedir essa permissão do jeito normal. Só o shell do celular, o mesmo nível de acesso que um computador tem por um cabo de depuração, ou o root podem concedê-la.

A Depuração por Wi-Fi dá esse acesso ao shell sem computador. Na configuração, você a ativa e o Android mostra um código de pareamento de seis dígitos. Você o digita no AppVolume, que pareia com o celular em que está rodando e concede a si mesmo essa permissão com um único comando. Essa é a configuração inteira. Nenhum ajudante continua rodando depois.

A permissão então continua depois de reinícios e atualizações do app, então você pode desligar a Depuração por Wi-Fi e as Opções do desenvolvedor de novo. Se você já usa o Shizuku ou um celular com root, o AppVolume pode usá-los no lugar. Usamos um pareamento parecido para outro trabalho no Repel, que descrevemos em como o firewall do Repel funciona sem ocupar a vaga da sua VPN.

O que acontece por trás do controle?

Um mixer que mexe no som de outros apps precisa ter cuidado, porque um erro soa alto. Por isso o AppVolume segue algumas regras:

  • Desconhecido não é silêncio. Se o relatório de status não puder ser lido, o AppVolume não muda nada. Ler isso como "nada está tocando" soltaria todos os efeitos e mandaria todos os apps de volta ao volume máximo de uma vez.
  • Sumir quer dizer sumir duas vezes. Uma sessão precisa faltar em duas leituras seguidas antes de o efeito dela ser liberado, então uma falha breve não causa um salto.
  • Seus níveis são lembrados. Defina um app uma vez, mesmo antes de ele tocar, e o nível vale toda vez que ele começar.
  • Um reembolso não deixa ninguém trancado de fora. Um app que já tem um nível sempre pode ser aumentado de novo.

Quais são os limites, com honestidade?

O volume por app por meio de efeitos de áudio funciona para a maioria dos apps que tocam som, mas não para todos.

  • Alguns apps não podem ser ajustados. Alguns tocam áudio por caminhos que o Android não deixa nenhum efeito alcançar, como certos jogos que usam áudio de baixa latência. O AppVolume tenta várias vezes ao longo de cerca de um minuto e meio antes de decidir, depois avisa e marca o app, em vez de deixar um controle que não faz nada.
  • Pode haver uma fração de segundo no nível máximo. Quando um app começa a tocar, o som dele pode começar antes de o efeito ser anexado.
  • Apps de equalizador podem assumir o controle. Se você usa um, ele pode tomar o controle do mesmo áudio, e os dois podem atrapalhar um ao outro.
  • Os efeitos ficam até o app soltar. Se você desinstalar o AppVolume enquanto um app toca, esse app mantém o nível até liberar o áudio. As Configurações têm um botão para redefinir todos os apps ao volume máximo antes disso.
  • Ele depende de um relatório do sistema. Se uma versão futura do Android impedir que os apps o leiam, o mixer deixaria de ver o que está tocando. O AppVolume foi feito para não mudar nada nesse caso em vez de adivinhar.

Qual app de volume por app combina com você?

Se você quer principalmente um app mais baixo enquanto o usa, um alternador em primeiro plano pode bastar. Se quer dois apps tocando juntos em níveis diferentes, precisa de algo que mude o som de cada app. AppVolume vs Precise Volume compara duas abordagens, e quem tem Samsung deve ler AppVolume vs Samsung Sound Assistant, já que a Samsung oferece o próprio caminho. Seja qual for a sua escolha, o AppVolume não tem anúncios nem conta, pelos motivos de por que nossos apps não têm anúncios.

Fontes

Perguntas

Por que o Android não tem volume por app?

O Android agrupa o som pelo que ele faz, não pelo app que o produz. Mídia, toques, alarmes, notificações e chamadas têm cada um um volume, e todo app que toca mídia divide o volume de mídia. Isso deixa as teclas de volume simples, mas significa que um jogo e um podcast sempre tocam no mesmo nível, a menos que um app intervenha.

Dá para controlar o volume de cada app sem root?

Dá. O AppVolume não precisa de root nem de computador. Ele precisa de uma permissão que só as ferramentas de desenvolvedor do celular podem conceder, e guia você para obtê-la no próprio celular: ative a Depuração por Wi-Fi, digite um código de pareamento de seis dígitos e pronto. A permissão continua depois de reinícios e atualizações, e o Shizuku ou o root também funcionam se você já os usa.

Por que o AppVolume precisa da Depuração por Wi-Fi?

Para ver qual app toca qual som, o AppVolume lê um relatório de status do serviço de áudio do sistema, e o Android só deixa os apps lerem isso com uma permissão de desenvolvedor. Só o shell do celular pode conceder essa permissão. A Depuração por Wi-Fi é como o celular dá ao AppVolume acesso ao shell uma vez, no próprio celular. Depois da configuração, você pode desligá-la de novo.

O volume por app funciona com todos os apps?

Não com todos. Alguns apps tocam som por caminhos que o Android não deixa nada ajustar, como certos jogos com áudio de baixa latência. O AppVolume avisa quando um app não pode ser ajustado, em vez de deixar um controle que não faz nada. Um app também pode tocar por uma fração de segundo no nível normal antes de a sua configuração entrar.

Continue lendo