2016-03-31 39 views
0

İyi çalışan bir MediaPlayer var ve durdurma düğmesi tamam çalışıyor. Bununla birlikte, kullanıcı etkinliğe gider ve herhangi bir müzik çalmadan durdurma düğmesine basarsa, uygulama çöker. Bir şarkı çalınırsa, kullanıcı durdurma düğmesine istediği kadar basabilir ve iyi çalışır. Herhangi bir yardım harika olurdu!MediaPlayer Durdurma Düğmesi Çöküyor Uygulaması

public class Website extends AppCompatActivity { 

private MediaPlayer mp; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gridviewmusic); 

    GridView gridView = (GridView) findViewById(R.id.gridview); 
    gridView.setAdapter(new MyAdapter(this)); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 


     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 

      switch (position) { 
       case 0: 
        stopPlaying(); 
        mp = MediaPlayer.create(Website.this, R.raw.sound1); 
        mp.start(); 

        // This will make sound 
        break; 
       case 1: 
        stopPlaying(); 
        mp = MediaPlayer.create(Website.this, R.raw.sound2); 
        mp.start(); 
        break; 
       case 2: 
        stopPlaying(); 
        mp = MediaPlayer.create(Website.this, R.raw.sound3); 
        mp.start(); 
        break; 
       case 3: 
        stopPlaying(); 
        mp = MediaPlayer.create(Website.this, R.raw.sound4); 
        mp.start(); 
        break; 
       case 4: 
        stopPlaying(); 
        mp = MediaPlayer.create(Website.this, R.raw.sound5); 
        mp.start(); 
        break; 
       case 5: 
        Intent i = new Intent(Intent.ACTION_VIEW, 
          Uri.parse("https://play.google.com/store/music/")); 
        startActivity(i); 
        break; 

      } 

     } 
    }); 
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 

    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (mp.isPlaying()) { 
       mp.pause(); 
       mp.seekTo(0); 
      } 
     } 
    }); 
} 


private void stopPlaying() { 
    if (mp != null) { 
     mp.stop(); 
     mp.release(); 
     mp = null; 
    } 
} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    if(mp!= null) 
    { 
     mp.stop(); 
     mp=null; 
    } 
    this.finish(); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      if(mp!= null) 
      { 
       mp.stop(); 
       mp=null; 
      } 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 


    } 
} 
} 

cevap

2

bu deneyin:

fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (mp!=null && mp.isPlaying()) { 
      mp.pause(); 
      mp.seekTo(0); 
     } 
    } 
}); 
+0

Thankyou, işe yaradı! Yapabileceğim en kısa zamanda cevabınızı doğru yazacaktır. – user2407147