Transmisión de audio con Android MediaPlayer

Estoy tratando de crear un streamer de audio con MediaPlayer de Android. Está bien si no funciona con Android 2.1 o abajo. Necesito poder reproducir el audio de un stream de SHOUTcast. Aquí está mi código:

player = new MediaPlayer(); try { player.setDataSource("http://87.230.103.107:8000"); player.prepareAsync(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } player.start(); 

Por alguna razón, este código jugará nada. Creo que puede estar relacionado con los permisos de la aplicación. ¿Alguien sabe lo que está pasando?

¡Gracias!

[UPDATE] Estoy recibiendo los siguientes errores:

 04-25 23:35:15.432: ERROR/MediaPlayer(283): start called in state 4 04-25 23:35:15.432: ERROR/MediaPlayer(283): error (-38, 0) 04-25 23:35:15.602: ERROR/MediaPlayer(283): Error (-38,0) 04-25 23:35:17.542: INFO/AwesomePlayer(33): calling prefetcher->prepare() 04-25 23:35:18.547: INFO/Prefetcher(33): [0x17650] cache below low water mark, filling cache. 04-25 23:35:18.762: INFO/AwesomePlayer(33): prefetcher is done preparing 04-25 23:35:19.769: ERROR/AwesomePlayer(33): Not sending buffering status because duration is unknown. 

Lo siento por la respuesta tardía, corrió a través de este mientras buscaba respuestas a otro problema.

Si todavía necesita una respuesta, está llamando a start() mientras aún se está preparando. PrepareAsync() devuelve inmediatamente, a diferencia de prepare() . El problema con el uso de 'prepare () `con streams es que bloqueará hasta que tenga suficientes datos para iniciar la reproducción.

Lo que quieres hacer es establecer un OnPreparedListener , y tener el start() llamado desde allí.

El problema es que el tipo de contenido "audio / aacp" streaming no es compatible directamente. Algunas bibliotecas de decodificación pueden ser demandadas para jugar "aacp", por favor vea la solución a continuación:

Freeware Advanced Audio (AAC) Decodificador para Android

¿Cómo usar esta biblioteca?

Para más detalles por favor vea esto .

Considere asuntos legales mientras lo usa .

1) Evite usar prepare (), use prepareAsyc () en su lugar. (O) poner su lógica de juego en un hilo trabajado o un hilo separado. 1) Evite usar player.prepare (), en su lugar use player.prepareAsync ();

(O) mantener la lógica en un hilo separado. (Puede utilizar el servicio de intenciones, AsyncTask, etc.)

2) También intente con el constructor estático MediaPlayer.create (Uri);

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.