0

我正在编写一个音板,当您在声音上单击 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();
    }

我究竟做错了什么?

4

2 回答 2

1

使用以下代码

MediaPlayer mp=MediaPlayer.create(NewActivity3.this, R.raw.hahah);

   public void click7(View v) {
    if(mp!=null ){
    mp.reset();
    mp.prepare();
    mp.start(); 
   }

每当您按下按钮并且您想播放声音文件时,此代码将非常有用。

于 2013-04-24T09:40:41.250 回答
0

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

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

于 2013-04-23T15:22:05.990 回答