为什么多个 Android SoundPool.unload 调用根据顺序返回 true/false?
根据 Android 文档,SoundPool .unload 返回
如果刚刚卸载则为 true,如果之前卸载过则为 false
我创建 SoundPool,加载 5 个声音并存储相关的 5 个声音 ID。然后,在离开 Activity 之前,我为每个 ID 调用 unload
,最后调用 release
。我遇到的情况如下:
如果我以某种顺序对每个 ID(从地图返回的 ID)调用卸载,我会系统地收到 ID 1..4 的 false 和 ID 5 的 true;
如果我以与加载的 ID 相同的顺序(1 到 5)调用卸载,我会系统地收到所有 ID 的 false;
如果我以与加载时相反的顺序调用卸载,5 到 1,我会系统地收到 ID 2-5 的 true 和 ID 1 的 false
有谁知道为什么会发生这种情况,以及如何使其返回 true?我担心的是没有正确清理资源,并在多次加载/卸载声音后最终出现一些内存问题。
According to Android documentation, SoundPool.unload
returns
true if just unloaded, false if previously unloaded
I create the SoundPool, load 5 sounds and store related 5 sound IDs. Then before leaving the Activity I invoke unload
for each of those IDs, and finally I invoke release
. What I'm experiencing is the following:
if I invoke unload on each ID in some order (the one returned from a map) I systematically receive false for IDs 1..4 and true for ID 5;
if I invoke unload in the same order as IDs where loaded, 1 to 5, I systematically receive false for all IDs;
if I invoke unload in the opposite order as when loading, 5 to 1, I systematically receive true for IDs 2-5 and false for ID 1
Does anybody know why is this happening, and how to make it such that it returns true? My concern is to not clear up resources properly, and end up in some memory problems after looading/unloading sounds many times.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论