2011-10-28 51 views
0

我想一個聲音添加到我的聲音池聲游泳池 - 不加載文件

我一直停留在這一個多星期了,試圖通過URL等裝載的各種方法,但沒有作品。任何幫助將不勝感激。

我得到的錯誤:android.content.res.Resources $ NotFoundException:從可繪製資源ID文件res/raw/claps.wav。

我知道該文件是在apk中,我unziped apk在/res/raw/claps.wav下找到它。

SoundPool mySoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0); 
     int myAudioFile = context.getResourceId("raw.claps"); 
     try{ 
      mySoundPool.load(context.getActivity(),myAudioFile,1); 
     } catch (Exception e){ 
      message = String.valueOf(e); 
     } 

謝謝!

回答

0

試試這個:

SoundPool mySoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0); 
    int myAudioFile = getResId("claps", R.raw.class); 
    try{ 
     mySoundPool.load(context.getActivity(),myAudioFile,1); 
    } catch (Exception e){ 
     message = String.valueOf(e); 
    } 

public static int getResId(String variableName, Class<?> c) { 
    Field field = null; 
    int resId = 0; 
    try { 
     field = c.getField(variableName); 
     try { 
      resId = field.getInt(null); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return resId; 
} 
+0

不,文件仍然沒有找到... – panthro

+0

它應該工作,確保getResId()參數是正確的。 – Rohan

+0

好吧,claps是我的聲音文件的名稱,我是否需要將R.raw.class更改爲任何特定的?感謝您的幫助順便說一句 – panthro

0

我也有類似的問題;我的一半聲音會加載,一半會導致android.content.res.Resources $ NotFoundException。原因是在eclipse中我的一個資源文件與文件系統不同步。當我刷新文件時,所有聲音都從此載入。

相關問題