【问题标题】:Mediaplayer error once used multiple times媒体播放器错误一次使用多次
【发布时间】:2013-05-06 18:34:10
【问题描述】:

我创建了一个几乎完成的游戏,但我仍然遇到一个问题: 一旦我按下一个我想要播放声音的按钮,我就用这段代码做到了这一点:

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

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

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

【问题讨论】:

  • 最好选择SoundPool

标签: android android-mediaplayer


【解决方案1】:

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

当使用 MediaPlayer 完成后,您应该调用 release() 来释放 资源。如果不释放,会导致 MediaPlayer 实例过多 在一个例外中。

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

查看文档:http://developer.android.com/reference/android/media/MediaPlayer.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多