【问题标题】:Libgdx Audio Buffer ErrorLibgdx 音频缓冲区错误
【发布时间】:2016-01-10 21:05:19
【问题描述】:

所以我使用 libgdx 有一段时间了,同时我也在游戏中播放音乐。现在出现的问题是我无法分配音频缓冲区错误。

所以这里是我如何到达这种情况的详细信息。

当游戏开始并且状态变为运行时,我正在设置音量并播放音乐。此外,如果状态发生变化,我正在改变音量。现在问题来了,如果我赢得游戏然后我继续,在卸载所有资产后,当我再次加载资产进入屏幕时,它给了我Unable to allocate audio buffers.

所以这就是问题如果任何机构需要查看代码,请请求它!

【问题讨论】:

  • 只需停止音乐而不是卸载它,这可能是特定于设备的错误,某些 OEM 可能不允许您重新分配资产,试一试,我不是 100% 确定它,但是这是我想到的第一件事
  • 我试过了,我正在停止音乐,然后我正在卸载管理器。
  • 尽量不要以某种方式卸载音乐。还要检查其他设备是否也出现此错误
  • 检查一下,其他人也有同样的问题,并reoirted到libgdx,希望它有助于code.google.com/p/libgdx/issues/detail?id=1502

标签: audio libgdx buffer


【解决方案1】:

问题是 libgdx 的音频类有这样的逻辑:

你什么时候调用 play();方法是将对象添加到数组并给出一个id。当您尝试处理它时,会使缓冲区为空(并删除缓冲区);当你试图阻止它时,它会从数组中删除对象。

你需要保持这个生命周期。 因此,如果您不再使用它,只需将其丢弃即可。或先停止音乐,然后将其丢弃。

如果我错了,请纠正我。

另外,我只是找到了另一种解决方案,您可以在您启动它的地方播放音乐并在那里暂停。并且缓冲区将被设置。然后在你需要的地方播放。这也有效

【讨论】:

    猜你喜欢
    • 2015-07-31
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2018-03-08
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多