2017-09-17 198 views
0

太慢我想從使用LibGDX AssetManager我的資產文件夾加載「bang.ogg」文件:AssetManager加載聲音在Android

am.load("bang.ogg", Sound.class); 
am.finishLoading(); 

在我的小蜜紅米手機4X需要2分鐘加載此42KB -聲音! Apk大小是2Mb。

我加載圖片。但它在磨房加載:

am.load("test.jpg", Texture.class); 

我該怎麼辦?什麼導致這個問題?

+0

您需要提供更多信息。請閱讀此https://stackoverflow.com/help/how-to-ask並考慮更新您的問題。 – Barns

+0

您是否嘗試過使用其他'.ogg'文件? – Aryan

+0

是的,我願意。一樣的問題。但加載時間仍然取決於文件大小。 –

回答

0

Sound實現的問題是它會將整個文件加載到內存中。根據維基你不應該使用它在Android if the file size exceeds 1MB

:在Android上,一個聲音實例不能大小超過1MB。如果你有一個更大的文件,使用音樂

你的聲音是小於1MB,但使用Music實現您可以傳輸音頻所以它不會在啓動時,但streamed while playing加載:

對於任何超過幾秒鐘的聲音最好從磁盤上流出,而不是完全加載到RAM中。 Libgdx提供了一個音樂界面,可以讓你做到這一點。

我會給那一個嘗試。

+0

但是什麼會導致這個問題呢?音樂在幾毫秒內加載! –

+0

[this](https://github.com/libgdx/libgdx/blob/9b8f20b2d0e96e53f0f2b98dc8f6131c810aae71/backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/audio/Ogg.java)是執行音頻和音樂爲Ogg聲音。爲了調試慢速部分,請在您的項目中使用正確的包「com.badlogic.gdx.backends.lwjgl.audio」創建此類,並使用System.currentTimeMillis()來測量每個部分所需的時間。它會告訴你一個問題可能是什麼。 –

+0

好的,我會試試。 –