2014-05-08 66 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