【问题标题】:Mediaplayer error (-19 0) doesn't work with release()Mediaplayer 错误 (-19 0) 不适用于 release()
【发布时间】:2016-08-11 03:38:02
【问题描述】:

我正在编写一个 Soundboard,当您在声音上单击 20 次以上时我遇到了问题。

首先我收到 MediaPlayer 错误(-19 0),您无法再听到任何声音。我知道这是我的记忆。 所以当我尝试添加 Release();完全没有声音。

这是一个播放声音的按钮:

public void click7(View v) {
MediaPlayer mp = MediaPlayer.create(NewActivity3.this, R.raw.hahah);
mp.start(); 
    }

我也一直在尝试释放然后没有声音:

public void click7(View v) {
        MediaPlayer mp = MediaPlayer.create(NewActivity3.this, R.raw.hahah);
        mp.start();
        mp.stop();
        mp.reset();
        mp.release();
    }

我做错了什么?

【问题讨论】:

    标签: java android media-player android-mediaplayer


    【解决方案1】:

    使用以下代码

    MediaPlayer mp=MediaPlayer.create(NewActivity3.this, R.raw.hahah);
    
       public void click7(View v) {
        if(mp!=null ){
        mp.reset();
        mp.prepare();
        mp.start(); 
       }
    

    当你按下按钮并且你想播放声音文件时,这段代码将非常有用。

    【讨论】:

      【解决方案2】:

      当您使用释放功能时,MediaPlayer 会清除内存中的所有内容。

      释放与此 MediaPlayer 对象关联的资源。 使用完 MediaPlayer 后调用此方法被认为是一种很好的做法。特别是,每当应用程序的 Activity 暂停(调用其 onPause() 方法)或停止(调用其 onStop() 方法)时,应调用此方法以释放 MediaPlayer 对象,除非应用程序有特殊的需要保持对象周围。除了占用不必要的资源(例如内存和编解码器的实例)外,如果不再需要 MediaPlayer 对象,则未能立即调用该方法还可能导致移动设备持续消耗电池,如果没有,其他应用程序播放失败设备上支持同一编解码器的多个实例。即使支持同一编解码器的多个实例,当同时使用不必要的多个实例时,可能会出现一些性能下降。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-12
        • 1970-01-01
        • 2011-02-07
        相关资源
        最近更新 更多