停止Media Player中的循环音频会出错

时间:2013-02-16 06:15:08

标签: android android-mediaplayer

我喜欢在我的应用程序中循环播放音频。循环工作正常,但是当调用On Destroy方法来停止循环音频时,它会给我一条错误消息,说“不幸的是应用程序停止工作”我也试过给出一个停止按钮,同样的错误消息即将到来。这是我的媒体播放器代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quote);
    final MediaPlayer mp1=MediaPlayer.create(QuoteActivity.this,R.raw.ohm2);
    mp1.setLooping(true);
    mp1.start();        
    }

这是我在On Destroy中给出的方法

@Override
public void onDestroy() {       
    super.onDestroy ();{            
        if(mp1.isPlaying())  
            mp1.stop();
            mp1.release(); 
            mp1 = null;
        }

}

我已经尝试了很长时间寻找解决方案,但没有用。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

您在onCreate(...)方法中定义了媒体播放器,这意味着mp1方法中的onDestroy()无效。此外,您需要在致电mp1之前检查null不是isPlaying()

将代码更改为mp1,如下所示(示例代码)...

public class MyActivity extends Activity {

    MediaPlayer mp1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quote);

        mp1 = MediaPlayer.create(this, R.raw.ohm2);
        mp1.setLooping(true);
        mp1.start();
    }

    @Override
    public void onDestroy() {
        super.onDestroy ();
        if(mp1 != null && mp1.isPlaying()) {
            mp1.stop();
            mp1.release(); 
            mp1 = null;
        }
    }

}