【问题标题】:AssetManager loads sound too slow on androidAssetManager 在 android 上加载声音太慢
【发布时间】:2018-02-26 09:21:55
【问题描述】:

我想使用 LibGDX AssetManager 从我的资产文件夹中加载“bang.ogg”文件:

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

在我的小米红米 4X 上,加载这个 42Kb 的声音需要 2 分钟! Apk 大小为 2Mb。

我加载了一张图片。但它在工厂加载:

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

我必须做什么?是什么导致了这个问题?

【问题讨论】:

  • 您需要提供更多信息。请阅读此stackoverflow.com/help/how-to-ask 并考虑更新您的问题。
  • 你试过其他.ogg文件吗?
  • 是的,我愿意。同样的问题。但加载时间仍然取决于文件大小。

标签: java android libgdx assets


【解决方案1】:

Sound 实现的问题在于它将整个文件加载到内存中。根据 wiki,您不应该在 Android if the file size exceeds 1MB 上使用它:

注意:在 Android 上,Sound 实例的大小不能超过 1mb。如果您有更大的文件,请使用音乐

您的音频小于 1MB,但使用 Music 实现允许您流式传输音频,因此它不会在启动时加载,但 streamed while playing

对于任何超过几秒钟的声音,最好将其从磁盘流式传输,而不是将其完全加载到 RAM 中。 Libgdx 提供了一个音乐界面,让您可以做到这一点。

我会试一试。

【讨论】:

  • 但是什么会导致这个问题呢?音乐在几毫秒内加载!
  • this 是 Ogg 声音的音频和音乐的实现。为了调试慢速部分,请在您的项目中的正确包com.badlogic.gdx.backends.lwjgl.audio 中创建此类,并使用System.currentTimeMillis() 测量每个部分需要多长时间。它会告诉你问题可能是什么。
  • 好的,我试试。
猜你喜欢
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
相关资源
最近更新 更多