2011-10-28 48 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中我的一个资源文件与文件系统不同步。当我刷新文件时,所有声音都从此载入。

相关问题