0

我创建了一个几乎完成的游戏,但我仍然遇到一个问题:一旦我按下一个按钮,我想要播放声音,我使用以下代码执行此操作:

                    MediaPlayer planeSound = MediaPlayer.create(ObjectCanvas.getDrawContext(), R.raw.plane);
                planeSound.start();

它工作得很好,但唯一的问题是当我多次按下它时,MediaPlayer 会给出一个错误,即错误 (-19,0)。我进行了搜索,但找不到解决方案。如果发生错误,MediaPlayer 将不再播放任何声音,直到重新创建活动。游戏没有获得 FC,而只是错误 (-19,0)。

我不知道如何解决它,我希望有人能给我一些建议或解释。

4

1 回答 1

0

使用声音池,或重用一个媒体播放器实例,或在完成后释放每个实例。

完成 MediaPlayer 后,您应该调用 release() 来释放资源。如果不释放,过多的 MediaPlayer 实例将导致异常。

ETC

还建议一旦不再使用 MediaPlayer 对象,立即调用 release() 以便与 MediaPlayer 对象关联的内部播放器引擎使用的资源可以立即释放。资源可能包括单例资源,例如硬件加速组件,调用 release() 失败可能会导致 MediaPlayer 对象的后续实例回退到软件实现或完全失败。一旦 MediaPlayer 对象处于 End 状态,就不能再使用它,也无法将其恢复到任何其他状态。

请参阅文档:http: //developer.android.com/reference/android/media/MediaPlayer.html

于 2013-05-12T22:28:10.940 回答