1

我喜欢在我的应用程序中循环播放音频。循环工作正常,但是当调用 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;
        }

}

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

4

1 回答 1

2

您在onCreate(...)方法中定义媒体播放器,这意味着mp1在方法中无效onDestroy()。您还需要在调用之前检查mp1is not 。nullisPlaying()

将您的代码更改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;
        }
    }

}
于 2013-02-16T06:23:20.470 回答