MediaPlayer.setDataSource () y prepare () no funcionan – android

Estoy teniendo problemas para usar el objeto MediaPlayer y no tengo mucho éxito. Si agrego un activo de sonido a mi carpeta sin formato y lo llamo usando el valor int dentro de R, funciona bien. Pero quiero poder sacar cosas de la url.

De acuerdo con toda la documentación que he leído, setDataSource () debería aceptar un parámetro de cadena con una url en un archivo.

Sigo recibiendo una excepción de IO en la statement de preparación (). Incluso intenté copiar el archivo de forma local y aún no hay dados.

¿Alguien tiene alguna idea?

MediaPlayer mp = new MediaPlayer(); try { mp.setDataSource("http://www.urltofile.com/file.mp3"); mp.prepare(); mp.start(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

Pruebe MediaPlayer.create (), también puede comenzar solo después de que el reproductor esté listo, por ejemplo:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MediaPlayer player = MediaPlayer.create(this, Uri.parse("http://www.urltofile.com/file.mp3")); player.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); } 

Para las transmisiones, debe llamar a prepareAsync() , que regresa inmediatamente, en lugar de bloquear hasta que se hayan almacenado suficientes datos.