É o que eu uso no trabalho, em casa, na cama, no chuveiro e em todos os lugares para me manter sã e feliz. A música me deixa melhor e, como a música é uma parte tão grande da minha experiência com o Android, houve um declínio lento do qual tenho sentido dolorosamente nos últimos anos e especialmente nos últimos meses.
Às vezes, ligo meus fones de ouvido Bluetooth, pressiono play e nada acontece. E nada acontece muito mais do que costumava.
Nos primeiros dias do Android, com Soarin no bolso (sim, chamei meu Samsung Captivate Glide) e meu primeiro par de fones de ouvido Kinivo Bluetooth no pescoço, eu não precisava ter o Google Play Music aberto, só precisava pressionar tocar nos meus fones de ouvido. Na verdade, tirei um Samsung Galaxy SII de uma gaveta, inicializei-o pela primeira vez em meses, emparelhei fones de ouvido Bluetooth com ele e apertei o botão play. E a música tocou.
Nem tanto nos dispositivos atuais no meu estábulo.
O HTC 10 simplesmente não obedece aos controles Bluetooth às vezes, notificação persistente para o aplicativo de música ou não. Preferiria tocar no meu Moto 360 ou no próprio telefone. O HTC A9 é igualmente exigente. Às vezes, o Nexus 5X não inicia o backup de músicas com a notificação persistente, mas às vezes o faz sem uma. O Samsung S6 edge será reproduzido, mas, às vezes, em vez de reproduzir o aplicativo de música ativo mais recentemente, o padrão será voltar ao aplicativo de música pré-carregado.
Há uma palavra que fica repetindo aqui: às vezes. Isso ocorre porque esse é um problema com muitas variáveis: qual dispositivo Android você está usando, qual dispositivo Bluetooth você está usando, qual versão do Android e Bluetooth seus dispositivos têm, qual aplicativo de música você está tentando reproduzir, em que ambiente você está, etc. Isso é muitas coisas para contribuir para um problema aparentemente simples de botões não funcionarem toda vez que você os pressiona.
Então, o que realmente está acontecendo aqui? Bem, a resposta fica um pouco - ok, muito - técnica.
Quando você pressiona o botão, ele é interpretado pelo Android e transmitido pelo sistema através do KeyEvents. O próximo botão do seu fone de ouvido é interpretado e entregue como KEYCODE_MEDIA_NEXT através de um KeyEvent. Há uma grande variedade de valores que podem ser exibidos para botões diferentes ou mesmo para o mesmo botão. O botão de reprodução na maioria dos fones de ouvido também é o botão de pausa, para que a tecla possa retornar KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY ou o muito mais provável KEYCODE_MEDIA_PLAY_PAUSE, dependendo do dispositivo e seu estado atual. A propósito, se você já tocou em pausa e a música começou em outro lugar enquanto o que você estava assistindo / ouvindo pausou, esse é o KeyEvent, porque foi recebido e acionado por dois aplicativos.
Depois que os KeyEvents são interpretados, eles ainda precisam ser ouvidos por um aplicativo de música que está ouvindo botões de mídia através de uma intenção BroadcastReceiver. Afinal, um aplicativo não pode atuar em um KeyEvent se não puder vê-lo. Se algo estiver impedindo o receptor de um aplicativo de pressionar os botões, ele poderá atrapalhar os controles de reprodução de várias maneiras, incluindo o problema intermitente descrito acima. Se um aplicativo cancela o registro do BroadcastReceiver muito rapidamente quando perde o Audio Focus (o método pelo qual o Android determina quais aplicativos podem reproduzir áudio em um determinado momento), quando você pausa a música, ele pode parar de ouvir e não ouvir o botão pressionando para começar a tocar novamente. É por isso que é importante que os aplicativos de mídia manejem o Audio Focus e seu BroadcastReceiver adequadamente, para que, mesmo quando um dispositivo tenha perdido o primeiro, ele não o perca.
Muito disso se resume a quão bem seu aplicativo de música está programado e quais botões de mídia estão sendo transmitidos pelo dispositivo quando você pressiona um botão no fone de ouvido. Isso também significa que, mesmo que os controles de reprodução sejam consistentes quando você compra um dispositivo, eles podem ser quebrados por atualizações de aplicativos ou atualizações do sistema que alteram a rapidez com que para de ouvir.
No caso de aplicativos como o Google Play Music, as atualizações que quebram as coisas parecem estar ficando cada vez mais frequentes. Enquanto a maioria das quebras são corrigidas rapidamente, outras podem levar meses para serem corrigidas. Problemas intermitentes, como a música não inicializando corretamente no Bluetooth, podem ser difíceis de registrar e identificar adequadamente, retardando ainda mais uma possível correção.
Se os aplicativos de música não tiverem foco em áudio e não estiverem sendo executados como serviços em primeiro plano (se a notificação persistente para o media player não estiver lá), é possível que o sistema Android (mais especificamente o Doze) ou o chamado "recurso aplicativos que economizem "podem matar o aplicativo para liberar memória para outras atividades. Quando isso acontece, pressionar play pode não fazer nada porque não há receptores abertos e ouvindo comandos.
Agora, assim como existem várias coisas que podem interromper seus controles de reprodução, também há opções para tentar corrigi-lo.
A primeira solução é um pouco extremada, mas uma das poucas que os usuários poderiam implementar em seus telefones atuais hoje sem alterações na raiz do software. Usando aplicativos como Tasker e AutoInput, podemos detectar o pressionamento do botão, suprimir a ação KeyEvent original e executar um comando mais especializado (e mais consistente) direcionado diretamente a um aplicativo. Por exemplo, em vez de o botão play ser um comando genérico de reprodução de mídia que pode ser captado ou ignorado por dezenas de serviços de mídia, poderíamos remapear como um comando de alternância de reprodução / pausa específico do Google Play Music para que outros aplicativos não iniciar em vez disso.
Isso pode ser entediante para o programa e, ao suprimir a ação original e substituí-la, quebramos o botão de pausa nativo que podemos usar em outros aplicativos como o YouTube ou o Netflix. Em resumo, não é muito uma solução para usuários não técnicos ou usuários que usam uma variedade de aplicativos de mídia.
Muitos telefones incluem várias ações de gesto e botão que você pode ativar ou desativar em Configurações, como toque duas vezes para ativar ou pressione duas vezes Início / energia para a câmera. Embora a adição de controles Bluetooth a esta lista possa prolongá-lo e complicá-lo, se o sistema Android reconhecer e direcionar o KeyEvent para um aplicativo específico em vez de transmitir um sinal genérico para qualquer receptor que esteja ouvindo (ou não), poderemos garantir consistência. Já vimos isso em dispositivos antes, por exemplo, abrindo o Moto Assist ativando um aplicativo de música designado quando ele era conectado ao Bluetooth do seu carro.
Mudar a maneira como o Android lida com os botões de mídia - e lida com as entradas de botões em geral, à medida que os controladores e teclados Bluetooth enfrentam problemas próprios - pode criar tantos problemas novos quanto resolver, mas considerando o número de lugares que as coisas podem - e fazem errado no sistema atual, pode valer a pena quebrar os ovos para fazer uma nova omelete.
No final do dia, os usuários comuns não querem se aprofundar nos principais comandos, receptores e quais aplicativos têm foco de áudio no momento. Queremos que nosso foco seja a música em si e para onde ela nos leva. E se eu não conseguir ligar a música que me mantém sã em locais barulhentos e lotados na primeira tentativa, eu não sou uma garota feliz. E aposto que não sou o único.
Podemos ganhar uma comissão por compras usando nossos links. Saber mais.