2013-02-14 3 views
0

J'essaie de lire un fichier son dans Android en obtenant le nom de fichier de l'utilisateur. Comment trouver et lire le fichier son situé dans le dossier Raw en utilisant son nom?Lecture d'un fichier son en spécifiant son nom

Je sais que le processus de le faire est le même que la récupération d'une Bitmap en utilisant son nom en exécutant le code:

Bitmap bitmap = `BitmapFactory.decodeResource(con.getResources(),con.getResources().getIdentifier(name_of_file, "drawable", con.getPackageName()));` 

Mais je ne sais pas comment le faire sur des fichiers audio.

Répondre

0

Essayez avec ceci:

public static int getResId(String drawableName) {  
    try { 
     Class res = R.drawable.class; 
     Field field = res.getField(drawableName); 
     int drawableId = field.getInt(null); 
     System.out.println("resource ids****"+drawableId); 
     return drawableId; 
    } catch (Exception e) { 
     Log.e("MyTag", "Failure to get drawable id.", e); 
     return 0; 
    } 
} 

J'utilise ce ainsi:

ImageView my_image = (ImageView) findViewById(R.id.my_imageView); 
my_image.setBackgroundResource(getResId("ic_launcher")); 
0

Vous pouvez essayer d'obtenir l'id de la ressource, puis lancez le Mediaplayer avec cet identifiant

Quelque chose comme ça

int resId = getResources().getIdentifier(name,folder,packagename); 
MediaPlayer mp = MediaPlayer.create(context, resId); 
mp.start(); 
+0

Je reçois l'erreur suivante: 'android.content.res.ResourcesNotFoundException: Fichier res/raw/ako1.3ga de l'ID de ressource dessinable # 0x7f040000'. Je suis sûr que ce fichier existe dans le dossier res/raw –

+0

quels paramètres avez-vous utilisé, exactement? le nom du paquet est peut-être faux, ou vous appelez "dossier" "/ res/raw" au lieu de "raw". Difficile de trouver votre problème sans cette information – Sprigg