我在一个无线电组中有两个单选按钮,在选择一个单选按钮时,它将启动音乐并停止另一个声音,在选择其他声音时,它将启动下一首歌并停止前一首歌。问题是我无法阻止音乐。这首歌继续在后台播放。我正在使用对话框显示单选按钮,并在按钮单击时获取用户的输入。每首歌的长度大于3分钟。我搜索了互联网并尝试了多种解决方案,但没有解决方案正在运行。以下是我用过的代码:
btnDone.setOnClickListener(view.onClickListener)
{
@Override
public void onClick(View view)
{
boolean checked = radioButton1.isChecked();
boolean checked1 = radioButton2.isChecked();
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.song1);
MediaPlayer mediaPlayer2 = MediaPlayer.create(this,R.raw.song2);
if(checked && !checked1)
{
mediaPlayer.start();
}else if(checked1 && !checked)
{
try{
if(mediaPlayer !=null)
{
if(mediaPlayer.isPlaying())
{mediaPlayer.stop;
mediaPlayer.release;
mediaPlayer = null;
}
}
}
catch(Exception e)
{e.printStackTrace(); }
}
}
}
IMO你的else if(checked1 && !checked1)
条件不能正常工作所以尝试else if(checked1 && !checked)
尝试下面的代码
btnDone.setOnClickListener(view.onClickListener)
{
@Override
public void onClick(View view)
{
boolean checked = radioButton1.isChecked();
boolean checked1 = radioButton2.isChecked();
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.song1);
MediaPlayer mediaPlayer2 = MediaPlayer.create(this,R.raw.song2);
if(checked && !checked1)
{
mediaPlayer.start();
}else if(checked1 && !checked) //change here
{
try{
if(mediaPlayer !=null)
{
if(mediaPlayer.isPlaying())
{mediaPlayer.stop(); // also change here
mediaPlayer.release(); //change here
mediaPlayer = null;
}
}
}
catch(Exception e)
{e.printStackTrace(); }
}
}
}