MediaPlayer pára e reinicia

Eu recebo um erro estranho. Eu jogo com um MediaPlayer um mediastream (como shoutcast ou icecast).
Às vezes, de repente, no stream de reprodução (total random) acontece um erro, o stream pára e reinicia.
OnErrorListener não é acionado!

Logcat:

03-02 17:50:36.274: W/MediaPlayer(16799): info/warning (702, 0) 03-02 17:50:36.274: I/MediaPlayer(16799): Info (702,0) 

ou assim:

 03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (703, 0) 03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (701, 0) 03-02 17:50:14.250: I/MediaPlayer(16799): Info (703,0) 03-02 17:50:14.250: I/MediaPlayer(16799): Info (701,0) 

ou

 03-02 18:03:33.906: W/MediaPlayer(16799): info/warning (703, 126) 
03-02 18:03:33.906: I/MediaPlayer(16799): Info (703,126)

Alguma idéia sobre isso?

Editar:

Ahh Mais uma informação. 701 significa MEDIA_INFO_BUFFERING_START e 702 significa MEDIA_INFO_BUFFERING_END . Eu acho que eu poderia consertar isso se eu aumentar o tamanho do buffer?

Edit: Mas espere. BufferingSize é cozido no sistema. Condenado. 🙂

Como você escreveu, buffering …

Desculpe, nenhuma outra sugestão.

Ele está em buffer como você escreveu – a única coisa que gostaria de acrescentar é que, embora seja irritante interromper ou iniciar, essas informações são muito úteis para o usuário. Você pode querer atualizá-lo com um Toast (ou um Crouton!) Ou indicar algum tipo de status de buffering para que eles não culpem seu aplicativo (de qualquer maneira, geralmente!) Ou para que eles saibam que é provável que sua conexão seja culpada. – Conectando-se a WIFI, neste caso, é uma ação que ajudaria.

Eu estava vendo o mesmo problema, mas só ocorreu quando usando um fone de ouvido Bluetooth particular e a canvas do meu telefone estava desligada. O aplicativo em que ocorreu foi Just Playlists, um player de música que desenvolvi e suportei.

Ocorreu apenas quando transmitia via Wi-Fi e não através da rede celular. Consegui contornar o problema seguindo as configurações avançadas de Wi-Fi do Android e desativando a opção “Otimização de Wi-Fi”, que afirma “minimizar o uso da bateria quando o Wi-Fi está ativado”. Eu já tinha usado as opções avançadas para manter o Wi-Fi sempre ligado.

A marca e o modelo do headset são Phiaton PS 210 BTNC. Eles suportam Bluetooth 3.0, o que me faz suspeitar que isso faz parte do problema. Eu tive esse problema tanto no Android 4.1.xe 4.2.2. Aqui está um extrato de log de quando o problema ocorre e, em seguida, recupera:

 I/AwesomePlayer( 131): cache is running low (1.90 secs) , pausing. W/MediaPlayer( 3028): info/warning (703, 0) W/MediaPlayer( 3028): info/warning (701, 0) I/MediaPlayer( 3028): Info (703,0) I/MediaPlayer( 3028): Info (701,0) I/audio_a2dp_hw( 131): suspend_audio_datapath: state 1 E/bt-btif ( 889): bta_av_str_stopped:audio_open_cnt=1, p_data 586a58f8 W/bt-btif ( 889): bta_dm_rm_cback:1, status:6 W/bt-btif ( 889): bta_dm_rm_cback:1, status:6 I/BluetoothA2dpServiceJni( 889): bta2dp_audio_state_callback I/audio_a2dp_hw( 131): skt_disconnect: fd 46 D/A2dpStateMachine( 889): Connected process message: 101 D/A2dpStateMachine( 889): A2DP Playing state : device: 00:18:09:06:08:0C State:10->11 I/AwesomePlayer( 131): cache has filled up (6.00 secs), resuming. 

Ainda estou para ver qual é o impacto no uso da bateria depois de desativar a otimização de Wi-Fi.