2012-03-08 84 views
1

在一个活动中,我使用两个媒体播放器为不同的声音,如果两个声音播放和后退按钮被推没有问题,它工作正常。媒体播放器停止和释放。(MP设置为循环,MPS只是扮演一个短声)强制关闭如果mediaplayer不使用和后退按钮推

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    mp.stop(); 
    super.onPause(); 
} 
@Override 
protected void onStop() { 
    // TODO Auto-generated method stub 
    mp.release(); 
    mps.release(); 
    super.onStop(); 
} 

但是,如果一个和/或两个声音都没有打过我得到一个强制关闭时,后退按钮是推送和空指针异常。你将如何编写代码来检查媒体播放器是否曾经使用过,因此需要停止并释放它们?

+0

你可以使用一个数,如果添加一个给它的变量有一直在玩,然后检查它是否等于0。 – bobthemac 2012-03-08 16:29:55

+0

我会试一试,谢谢。 – kmb 2012-03-08 17:02:28

回答

0

如果您在onPause和onStop中获得空指针,则需要检查mp是否为空。

@Override 
protected void onPause() { 
    if (mp != null) 
     mp.stop(); 
    super.onPause(); 
} 
@Override 
protected void onStop() { 
    if (mp != null) 
    mp.release(); 
    if (mps != null) 
    mps.release(); 

    super.onStop(); 
} 

你可以保持一个计数,如果你愿意,但是这意味着保持另一个变量的轨道时,你已经有机会获得你需要

+0

我得到它的工作!我在播放短音后直接释放媒体播放器,并使用if(mp!= null)停止并在onPause上释放。谢谢大家的建议。 – kmb 2012-03-08 18:14:11

0

你可以使用一个计数,并添加一个,如果有一个游戏,然后检查它是否等于0或不。