Quando MediaPlayercomeça a tocar uma música (ou outra fonte), ele verifica se existe um SubtitleController e mostra essa mensagem se não estiver definido. Parece que não se preocupa se a fonte que você deseja reproduzir é uma música ou vídeo. Não sei por que ele fez isso.
Resposta curta: não se importe com essa "exceção".
Se MediaPlayerfor usado apenas para reproduzir arquivos de áudio e você realmente desejar remover esses erros no logcat, o código a seguir será definido empty SubtitleControllercomo MediaPlayer.
Não deve ser usado no ambiente de produção e pode ter alguns efeitos colaterais.
Eu concordo - não é um erro se uma faixa de legenda não existir. Informativo no máximo.
Alguém em algum lugar
4
ok, claro, mas existe uma maneira fácil de suprimi-lo? é junking a minha saída logcat ...
TJ Ellis
Posso fazer um filtro, se é realmente irritante, recompilar o Android ou definir um SubtitleController vazio para a sua música.
Hacketo
1
@Hacketo como você define um SubtitleController vazio? Desculpe, eu não vejo isso nos documentos.
Frank Schwieterman
2
Obviamente, a documentação não está fornecendo essas informações. Se você viu o código compartilhado do MediaPlayer, pode ver que existe um configurador para o SubtitleController (por isso deve ser possível), mas infelizmente parece indisponível.
Hacketo 16/09
8
Para remover a mensagem no logcat, adiciono uma legenda para rastrear. No Windows, clique com o botão direito do mouse na faixa -> Propriedade -> Detalhes -> insira um texto na legenda. Feito :)
Pense duas vezes sobre isso: 1) a modificação do arquivo de origem não é realmente viável em muitas situações. 2) você não explicou por que a adição de uma faixa de legenda corrigia um erro em um controlador de legenda no MediaPlayer.
Travis Castillo
O erro é "Deve ter o controlador de legenda já definido", então adiciono uma legenda para rastrear, para evitar essa mensagem de erro.
StefanoM5
legenda ou controlador de legenda. você está dizendo que, ao ter uma faixa de legenda em um vídeo, o media player gera automaticamente um controlador?
Travis Castillo
0
Além disso, você só pode definir mediaPlayer.reset()e onDestroyconfigurá-lo para liberar.
Para remover a mensagem no logcat, adiciono uma legenda para rastrear. No Windows, clique com o botão direito do mouse na faixa -> Propriedade -> Detalhes -> insira um texto na legenda. Feito :)
fonte
Além disso, você só pode definir
mediaPlayer.reset()
eonDestroy
configurá-lo para liberar.fonte