2013-02-14 61 views
0

我試圖通過從用戶獲取文件名來在Android中播放聲音文件。如何使用名稱找到並播放位於Raw文件夾中的聲音文件?通過指定名稱播放聲音文件

我知道,這樣的過程是一樣的通過運行代碼,獲取使用其名稱的位圖:

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

但我不知道如何做到這一點的聲音文件。

回答

0

嘗試這樣的:

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; 
    } 
} 

我以這種方式使用這樣的:

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

你可以嘗試獲取的ressource的ID,然後用這個ID啓動媒體播放器

類似的東西

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

我收到以下錯誤:'android.content.res.ResourcesNotFoundException:從可繪製資源ID#0x7f040000'文件res/raw/ako1.3ga。我確定這個文件存在於res/raw文件夾中 – 2013-02-15 03:58:36

+0

你使用了哪些參數?也許包名是錯誤的,或者你命名'文件夾'「/ res/raw」而不是「raw」。沒有這些信息很難找到你的問題 – Sprigg 2013-02-15 07:56:29