【发布时间】:2011-11-26 23:48:27
【问题描述】:
我遇到了一个关于 android MediaPlayer 的有趣情况。我有大约 30 种声音需要在活动中播放。我得到奇怪的结果,我不确定是否来自内存问题......
我需要使用媒体播放器的原因是我有一个定时流到一个声音需要以特定顺序在另一个声音之后播放的声音。我还使用回调来查看接下来播放的声音。这样,soundpool 就出来了……
我尝试使用 MediaPlayer.create() 将每个声音加载到它自己的媒体播放器中。现在,这在我的设备三星 Galaxy S Vibrant 上运行良好。我的客户使用三星 Ace,但是当我尝试设置 onCompletionListener 时出现空指针异常,这意味着 .create() 在他的设备上返回 null 而不是我的。
所以,我从一次加载它们切换到在上一个声音 using this method 的 onCompletionListener 中动态加载它们
这种作品,拳头 3-4 声音播放然后它挂在我客户的设备上(在我的设备上仍然可以正常工作)。我假设它挂在 .prepare()
这很难解决,因为我的客户对 logcat 没有真正的了解,也没有要调试的 SDK,而且它在我的设备上运行良好。它甚至挂在他的第二台设备上,该设备与我的型号相同。
有人知道是什么原因造成的或如何调试它吗?
我想我的下一步将是简单地使用一个 MediaPlayer 并使用 OnCompletionListener 的 mp 参数在同一个媒体播放器上加载下一个声音。我会发布我的发现。
【问题讨论】:
标签: android memory-management media-player