Essayez et voir si des exceptions sont pris:
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());
}
L'exception pris expliquera ce qui va mal dans votre création. Selon les docs, la méthode statique create est juste un raccourci pour ce qui est dans le bloc try ci-dessus. La différence majeure que je peux voir est que la méthode statique create ne lance pas while setSourceSource.
I ajouté la gestion des exceptions comme vous le suggérez et une déclaration mp.prepare() et je reçois cette erreur sur la préparation() 06-22 14: 45: 20,806: ERREUR/PlayerDriver (554): commande PLAYER_SET_DATA_SOURCE complétée par une erreur ou d'informations PVMFErrNotSupported 06-22 14: 45: 20,806: eRREUR/MediaPlayer (857): erreur (1, -4) 06-22 14: 45: 20,987 : DEBUG/dalvikvm (857): invocation JDWP renvoyant avec exceptObj = 0x43744d68 06-22 14: 45: 33.056: DEBUG/ASSETTEST (857): IOException: Préparer Échec: status = 0x1 6-22 14: 45: 43.068: WARN/System.err (857): java.io.IOException: Préparation échouée: état = 0x1 Suivant? – CalvinS
J'ai résolu cela en fixant le code pour accéder au fichier mp3 dans les actifs. mp = nouveau MediaPlayer(); AssetFileDescriptor afd = getAssets(). OpenFd ("chanson.mp3"); mp.setDataSource (afd.getFileDescriptor()); Merci Jere! – CalvinS