
Esta é uma continuação do artigo anterior sobre o rádio inteligente que não morre quando a Internet é perdida. Parece que a primeira panqueca foi bastante irregular: a maioria dos usuários não gostou do aplicativo. Críticas basicamente divididas em duas frentes:
- As mesmas faixas são repetidas com muita frequência e as novas aparecem muito raramente.
- Não há como escolher seus gêneros favoritos ou menos faixas inadequadas, para não ter que pular dolorosamente.
O segundo problema foi bastante agravado pelo primeiro, uma vez que as omissões frequentemente levavam a repetições de todas as mesmas faixas, embora em uma sequência diferente.
É um prazer informar que consegui resolver o primeiro problema (a atualização já está na Play Store). Abaixo do corte, haverá uma descrição do algoritmo selecionado para seleção e rotação de trilhas, bem como a essência da correção, que, como eu espero, deve melhorar drasticamente a experiência do usuário.
A idéia básica de selecionar faixas apareceu quase imediatamente: a probabilidade de escolher uma música para tocar é proporcional à sua "classificação de preferência". Este último é calculado como a razão entre o tempo médio de audição de uma faixa e a sua duração. Esse método de seleção leva à reprodução frequente das composições que são mais preferíveis para o ouvinte. Infelizmente, essa avaliação nem sempre corresponde à preferência real, mas deve se correlacionar bem com ela.
De acordo com a idéia inicial, a rotação das trilhas deve ocorrer no momento em que todas as trilhas foram ouvidas pelo menos duas vezes (uma vez que pareceu insuficiente para uma estimativa confiável da trilha). No momento da rotação, as faixas foram excluídas cuja pontuação de preferência estava abaixo de um determinado nível e uma nova porção de faixas foi carregada.
Na prática, esse algoritmo levou a uma rotação muito rara. De fato, as faixas que foram puladas rapidamente perderam a capacidade de serem ouvidas novamente por um longo tempo. Portanto, tive que superestimar artificialmente minha pontuação de preferência pelas faixas que ouvi menos de duas vezes para aumentar a probabilidade de reproduzi-las.
Além disso, para excluir a repetição das faixas reproduzidas, foi decidido reduzir artificialmente a pontuação de preferência das dez últimas faixas reproduzidas.
Na prática, isso funcionou muito bem, mas apenas sob a condição de um perfil de preferências mais ou menos formado, quando a grande maioria das primeiras vinte faixas carregadas não causa rejeição. O novo usuário recebeu um conjunto de faixas completamente aleatórias que ele foi forçado a pular sem parar. No primeiro caso, as lacunas eram bastante raras e não causavam irritação. No segundo - o ouvinte simplesmente não podia esperar pela próxima iteração de rotação.
Por isso, estava na versão original do aplicativo, publicada no momento da redação do artigo anterior. Agora, sobre o que foi feito para melhorar a experiência do usuário:
- Para a próxima iteração, a rotação agora é suficiente para que todas as faixas sejam ouvidas apenas uma vez (anteriormente havia duas vezes).
- Na presença de composições inéditas, sua avaliação da preferência aumenta acentuadamente; para todas as outras, diminui acentuadamente (ambas por ordem de grandeza).
Essas mudanças levaram ao fato de que, quando há uma conexão com a Internet, as faixas agora são reproduzidas apenas uma vez (como no rádio comum), mas as faixas que você gosta se instalam no cache, aglomerando o resto. Assim que a conexão com a Internet é perdida, o mecanismo antigo é ativado, reproduzindo as faixas selecionadas na proporção de sua avaliação de preferência.
PS Um bug relacionado à falta de reconhecimento do WiFi aparecido também foi corrigido.
A versão 1.0.2 do PPS foi interrompida. Ativei a minificação e a compactação de recursos, como resultado, o aplicativo falha, conforme apontado pelo nikita_dol . Peço desculpas, a partir de agora eu enviarei atualizações apenas através de versões beta. Eu realmente espero que a versão 1.0.3 esteja funcionando.