2014-05-08 67 views
-3

尝试在活动进入onPause或onStop时停止播放MediaPlayer时出现奇怪的错误。有什么建议吗?感谢您的帮助!Android - 应用程序在停止MediaPlayer onPause时崩溃

这里是我的活动代码:

public class MainActivity extends Activity { 

MediaPlayer mp; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.lyricistintro); 
    mp.setLooping(true); 
    mp.start(); 

    Button yesBtn = (Button) findViewById(R.id.button1); 
    yesBtn.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      mp.stop(); 
      Intent intent = new Intent(MainActivity.this, LyricList.class); 
      startActivity(intent); 
     } 
    }); 
} 

    public void onStop(){ 
    super.onStop(); 
    mp.stop(); 
} 

    public void onPause(){ 
    super.onPause(); 
    mp.pause(); 
} 

} 

enter image description here

回答

-1

实例变量MediaPlayer的熔点;永远不会初始化。 mp为空。

在的onCreate你重新声明和初始化这里

final MediaPlayer mp = MediaPlayer.create(this, R.raw.lyricistintro); 

MP是本地的onCreate。

应该

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

//and please replace your code in onstop with this 

if (mp.isPlaying()) { 
     mp.stop(); 
} 

//and Onpause code should be replced with 

if (mp.isPlaying()) { 
    mp.pause(); 
} 
3

实例变量MediaPlayer mp;永远不会初始化。 mp为空。

onCreate您已经重新声明和初始化

final MediaPlayer mp = MediaPlayer.create(this, R.raw.lyricistintro); 
// mp here is local to onCreate. 

应该

mp = MediaPlayer.create(this, R.raw.lyricistintro); 
+0

荡,我简直不敢相信我是缺少...男孩熬夜尽可能晚地确实没有帮助我的编程思维过程......太感谢你了! – webhoodlum