2017-09-17 201 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

好的,我会试试。 –