probar esto y ver si las excepciones son capturados:
try {
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(this, uri);
}
catch (NullReferenceArgument e) {
Log.d(TAG, "NullReferenceException: " + e.getMessage());
}
catch (IllegalStateException e) {
Log.d(TAG, "IllegalStateException: " + e.getMessage());
}
catch (IOException e) {
Log.d(TAG, "IOException: " + e.getMessage());
}
catch (IllegalArgumentException e) {
Log.d(TAG, "IllegalArgumentException: " + e.getMessage());
}
catch (SecurityException e) {
Log.d(TAG, "SecurityException: " + e.getMessage());
}
La excepción capturada explicará lo que está mal en su creación. De acuerdo con los documentos, el método de creación estática es solo una abreviatura de lo que está en el bloque try anterior. La principal diferencia que puedo ver es que el método estático create no arroja mientras que setDataSource lo hace.
he añadido el manejo de excepciones como usted sugiere y un estado de mp.prepare() y yo estoy recibiendo este error en la preparación de() 06-22 14: 45: 20.806: ERROR/PlayerDriver (554): Comando PLAYER_SET_DATA_SOURCE completa con un error o información PVMFErrNotSupported 06-22 14: 45: 20.806: eRROR/MediaPlayer (857): error (1, -4) 06-22 14: 45: 20.987 : DEBUG/dalvikvm (857): JDWP invocación volviendo con exceptObj = 0x43744d68 06-22 14: 45: 33.056: DEBUG/ASSETTEST (857): IOException: Prepar e failed .: estado = 0x1 6-22 14: 45: 43.068: WARN/System.err (857): java.io.IOException: Prepare failed .: estado = 0x1 ¿Siguiente? – CalvinS
Lo solucioné arreglando el código para acceder al archivo mp3 en los activos. pf = new MediaPlayer(); AssetFileDescriptor afd = getAssets() openFd ("song.mp3."); mp.setDataSource (afd.getFileDescriptor()); Gracias Jere! – CalvinS