【问题标题】:Heap size overflow issues with sound clips声音剪辑的堆大小溢出问题
【发布时间】:2011-01-19 12:19:03
【问题描述】:

我正在创建一个涉及多个短声音剪辑的 Android 应用。目前,一旦菜单活动开始第二个活动,我正在使用SoundPool 加载我的声音剪辑。我似乎遇到的问题是,一旦这个辅助活动开始,声音剪辑的加载会导致多个堆大小溢出,然后在一段时间后活动实际加载(模拟器永远不会给出错误或强制退出)。在这里使用MediaPlayer 会帮助我并防止这些堆大小溢出吗?

此外,目前,菜单活动开始第二个活动等待结果(使用startActivityForResult() 函数)。这是否意味着菜单活动被保存在内存中以及将第二个活动加载到内存中?如果是这样,我可以通过在第二个菜单活动上调用finish() 来解决我的记忆问题(然后在用户希望返回菜单时重新启动菜单活动,或者这会带来一组全新的问题?)?

【问题讨论】:

标签: android memory-management soundpool


【解决方案1】:

是的,soundpool 会将所有声音保存在内存中。您可能只需要一个媒体播放器实例see here。您应该这样做,并且您的记忆问题应该会消失,而无需采取任何极端措施。

【讨论】:

  • 谢谢。真不幸,Android 文档没有对此进行更多梳理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
  • 2012-10-20
  • 2022-11-14
  • 2020-12-16
相关资源
最近更新 更多