我正在尝试从android加载声音.
声音在res / raw / myownsound.wav下.
我知道我已经可以使用以下方式加载声音:
soundPool.load(context, R.raw.myownsound, 1)
出于自定义目的,我想使用以下方法加载它:
soundPool.load("res/raw/myownsound", 1)
…但是我收到以下错误:加载res / raw / myownsound时出错.
我也尝试过以下方法:
soundPool.loadSound("androID.resource://upg.GraphismeBase/raw/myownsound", 1)
..但我也得到一个错误:错误加载androID.resource://upg.GraphismeBase/raw/myownsound
使用soundPool.load(路径,优先级)的正确方法是什么?
解决方法:
在项目中创建文件夹结构
/assets/sounds/data/
然后在那里复制你的wav文件.
// Declare globally if neededint mySoundID;SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0 );AssetManager am = this.getAssets();//Use in whatever method is used to load the soundstry { mySoundID = soundPool.load(am.openFd("sounds/data/myownsound"), 1);} catch (IOException e) { // Todo auto-generated catch block e.printstacktrace();}
可以试试这个(不确定它的工作原理):
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;}
总结 以上是内存溢出为你收集整理的Android Soundpool Load(String path,int priority)全部内容,希望文章能够帮你解决Android Soundpool Load(String path,int priority)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)