2013-08-18 47 views
0

我有以下代码片段。不知道为什么,当点击退出按钮时,媒体播放器不会停止,即使退出游戏也应该停止其中的所有活动。 任何帮助将不胜感激。我试过停止(),释放(),重置()和设置为空。请让我知道我哪里错了。无法停止中间媒体播放器的执行

public void onClick(View v){ 
     // The background music of the game 
     MediaPlayer back_music = MediaPlayer.create(getBaseContext(), R.raw.sher_khan); 
     switch (v.getId()){ 
     case R.id.new_game: 
      openNewGameDialog(); 
      break; 
     case R.id.about_game : 
      Intent i = new Intent(this, About.class); 
      startActivity(i); 
      break; 
     case R.id.exit_game : 
      if(back_music.isPlaying()){ 
       back_music.release(); 
       back_music.reset(); 
       back_music = null ; 
       //onDestroy(); 
      } 
      finish(); 
      break; 
     case R.id.sound : 
      // Looping the music 
      //back_music.setLooping(true); 
      // Identifying and kind of looping through the sound_selector items 
      if(v.isSelected()){ 

       v.setSelected(false); 
       play = false; 
       //Music start for the media player 
       back_music.start(); 

      } 
      else if (!v.isSelected()){ 
       //speaker.setSelected(false); 
       back_music.stop(); 
       back_music.release(); 
       v.setSelected(true); 
       play = true; 
       back_music.release(); 
      } 

     } 

回答

0

请尝试以下方法:

在上创建您的媒体播放器创建,并宣布它为您的活动中的一员:

MediaPlayer back_music; 
public class MainACtivity(){ 
.... 
.... 
onCreate(){ 
    back_music= MediaPlayer.create(getBaseContext(), R.raw.sher_khan); 
..... 
} 

然后删除行“的MediaPlayer back_music = MediaPlayer.create(getBaseContext(),R.raw.sher_khan);“

并给它另一个镜头:)

希望它可以帮助你。

+0

嗨dbkoren, 非常感谢,是的,它确实有帮助,现在我更容易理解结构多一点。 –

+0

尝试使用Web上的示例处理新东西时,它可以帮助您...如果您发现它的工作方式和实用性,请接受答案。谢谢。 – dbkoren

+0

其实我错过了为什么它应该在onCreate()中声明的点,那是应该决定是否保留资源的主要活动。再次感谢您的指导! –