0
正常に動作するMediaPlayerがあり、停止ボタンは正常に機能します。ただし、ユーザーが音楽を再生せずにアクティビティに入り、停止ボタンを押すと、アプリがクラッシュします。曲が再生されると、ユーザーは希望する回数だけ停止ボタンを押すことができ、正常に動作します。どんな助けも素晴らしいだろう!MediaPlayer停止ボタンがクラッシュするアプリケーション
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);
}
}
}
ありがとう、それは働きました!できるだけ早くあなたの答えを正確に記入します – user2407147