Implementar um limite de tempo de tentativa de conexão

31 views
Skip to first unread message

Matheus Henrique da Silva

unread,
Oct 22, 2014, 10:45:55 AM10/22/14
to androidb...@googlegroups.com
Estou usando uma biblioteca que reproduz streaming de audio da internet e as vezes com a velocidade ruim (dados moveis) ele entra num estado indefinido, como se ficasse enchendo o buffer infinitamente.
Isso trava o meu app pois esta projetado para primeiro receber o feedback da tentativa de conexão para depois tomar alguma outra ação. O proprio botao de play fica disabled enquanto o buffer ainda nao encheu.
Eu gostaria de saber como implementar adequadamente um tempo limite.
Eu tentei de um jeito aqui mas não deu muito certo, talvez a propria biblioteca nao aceite interromper a conexão ou sei la o que, de qualquer forma vou postar para tirar duvidas.

@Override
public void playRadio() {

if (aacPlayer == null) {
aacPlayer = new MultiPlayer(radioCallback,
MultiPlayer.DEFAULT_AUDIO_BUFFER_CAPACITY_MS,
MultiPlayer.DEFAULT_DECODE_BUFFER_CAPACITY_MS);
}

MyService.estadoRadio = Estado.CONECTANDO;

radioConnectLimit(5000);

aacPlayer.playAsync(url);

}

@Override
public void stopRadio() {
if (aacPlayer != null) {
aacPlayer.stop();
}

}


private void radioConnectLimit(int tempo) {

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
if (estadoRadio == Estado.CONECTANDO) {

// Se depois de todo esse tempo ainda estiver conectando,
// vamos lançar uma exceção
stopRadio();

Intent it = new Intent(MyService.ACTION_PLAYERCALLBACK)
.addCategory(MyService.CATEGORY_EXCEPTION);
LocalBroadcastManager.getInstance(MyService.this)
.sendBroadcast(it);

}

}
}, tempo);

Eu acho esse jeito não muito adequado porque, pra começar, antes do fim do tempo chegar, o radio pode ja ter conectado, parado, e ter acabado de tentar uma nova conexão denovo.
Eu desconfio que vai ser necessario um esquema melhor trabalhado com thread, mas como eu nao so mto bom em multithreading e isso provavelmente deve ser um caso comum, decidi perguntar aqui. O que aconselham?

Desde ja, muito obrigado.

Leonardo S

unread,
Oct 22, 2014, 11:53:57 AM10/22/14
to androidb...@googlegroups.com
"Eu gostaria de saber como implementar adequadamente um tempo limite."
O que esse método faz ?
radioConnectLimit(5000);

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Geovani **Leia a documentação oficial** de Souza

unread,
Oct 22, 2014, 1:52:55 PM10/22/14
to androidb...@googlegroups.com
Mateus, o MediaPlayer ou SoundPool não atendem seu requisito?

Matheus Henrique da Silva

unread,
Oct 22, 2014, 3:53:08 PM10/22/14
to androidb...@googlegroups.com
precisa reproduzir AAC e AAC+. Eh uma radio do shoutcast.

geovani...@gmail.com

unread,
Oct 22, 2014, 5:59:30 PM10/22/14
to androidb...@googlegroups.com

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/VVOMV2MZU0Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
@geovanisouza92 - Geovani de Souza

Matheus Henrique da Silva

unread,
Oct 22, 2014, 6:23:29 PM10/22/14
to androidb...@googlegroups.com
O streaming eh esse

e eu preciso que seja api 10+.

Geovani **Leia a documentação oficial** de Souza

unread,
Oct 22, 2014, 8:29:24 PM10/22/14
to androidb...@googlegroups.com
Vc vai abrir mão de usar uma API oficial e confiável, que pode permitir que vc publique seu app mais rapidamente, por causa de 12% do mercado? Uma opção nesse caso é vc implementar com a API oficial e fazer um façade pra "esconder" a implementação. Depois vc poderia buscar uma lib que faça o streaming do jeito que vc quer, incluir atrás dessa fachada e baixar o minSdkVersion do app. Muitos players fazem isso, inclusive a Google.

Matheus Henrique da Silva

unread,
Oct 23, 2014, 10:27:51 AM10/23/14
to androidb...@googlegroups.com
Não é bem assim. Quando eu comecei com essa ideia ha mais de um ano atras, eu testei com o MediaPlayer e não deu certo. Foi aí que eu fui pesquisar o formato da streaming e então atrás de algo que reproduzisse AAC+ e achei o https://code.google.com/p/aacplayer-android/
 
Android com 4.1 ja representam mais de 85% do mercado?

A parte de façade eu entendi o conceito mas nunca nem vi coisa parecida, e parece que vai complicar pra caramba. 


Felipe Arimatéia

unread,
Oct 23, 2014, 10:57:18 AM10/23/14
to androidb...@googlegroups.com
Matheus

eu trabalho com aplicativos de rádio a quase dois anos e migramos todos os nossos APP para usar o AAC Decoder (https://code.google.com/p/aacdecoder-android/) que é muito bom e nuca tive problema de conexão.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Paz e Bem
Felipe Arimatéia - Analista de Sistemas Senior
http://felipearimateia.com/
(31) 92928793

geovani...@gmail.com

unread,
Oct 23, 2014, 11:04:44 AM10/23/14
to androidb...@googlegroups.com

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/VVOMV2MZU0Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Matheus Henrique da Silva

unread,
Oct 24, 2014, 8:38:20 AM10/24/14
to androidb...@googlegroups.com
Felipe, pode me passar um email para contato para tirar algumas duvidas sem precisar ficar upando thread aqui, ja que vc manja tanto dessa area especifica?
Se puder eu sou muito grato. Eu ja tenho o app praticamente pronto, só estou tratando as excessões.
E geovani, obrigado mais uma vez, mas como eu citei, o app ja esta pronto usando esta biblioteca. Se eu tiver mais problemas eu migro para o MediaPlayer. 
Reply all
Reply to author
Forward
0 new messages