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