0
我创建了一个应用程序,涉及从原始播放约500个ogg文件(每个文件约20到30kb),在需要时会触发声音。我正在使用声音池。如果我将超过475个ogg文件的声音添加到原始文件夹中。将声音加载到声音池加载器时,该应用程序会死亡给堆错误。是否有其他服务其他媒体播放器或声音池?有没有在声音加载器的声音加载到Android的限制?
声音池是否有加载声音的限制?
让我知道!
谢谢!
我创建了一个应用程序,涉及从原始播放约500个ogg文件(每个文件约20到30kb),在需要时会触发声音。我正在使用声音池。如果我将超过475个ogg文件的声音添加到原始文件夹中。将声音加载到声音池加载器时,该应用程序会死亡给堆错误。是否有其他服务其他媒体播放器或声音池?有没有在声音加载器的声音加载到Android的限制?
声音池是否有加载声音的限制?
让我知道!
谢谢!
为了进一步人们寻找这个问题,
尝试使用asynctask加载的声音。
上加载一个例子听起来与的Soundpool:
private class LoadSound extends AsyncTask<Void, Integer, String> {
protected void onPreExecute() {
// something before starting to load sounds
}
protected String doInBackground(Void... arg0) {
// actually loading sounds
for (int i = 0; i < sounds.length; i++) {
soundPoolId[i] = soundPool.load(context, soundResId, 1);
}
return "You are at PostExecute";
}
protected void onProgressUpdate(Integer... a) {
// update ui like loaded # sounds
}
protected void onPostExecute(String result) {
// something after loading all sounds
}
}
我认为极限是在RAM的数量,你必须提供给您不一定只是一个硬上可装入样品#帽。 – FoamyGuy 2013-02-17 17:16:35
你能解释'硬帽'吗? – TheAndroDev 2013-02-18 05:28:10
当然,我的意思是没有太多样本的“幻数”。即你没有遇到麻烦,因为你已经有了超过475辛普加斯。您遇到问题是因为样本的总大小(内存中)大于您正在分配的堆空间。如果让我们说你的样品只有一半的样子,那么在遇到我认为的问题之前,你可以容纳更多的样品。 – FoamyGuy 2013-02-18 14:16:36