У меня проблема с программированием Android.Я хочу рассказать вам о проблеме.У меня есть несколько кнопок.Плеер работает, когда мы нажимаем на них.Но звук не воспроизводится после окончания предыдущего звука.Кроме того, когда мы нажимаем кнопку «Назад», он ожидает окончания звука, а затем выполняет функцию кнопки «Назад».
Я добавил onBackPressed и onPause.Но программа не прошла после первого воспроизведения звука.
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
public class officeSounds extends AppCompatActivity implements View.OnClickListener{
ImageButton sofitukker,millieturner,jacobbanks,jameshersey;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//fullscreen - start
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//fullscreen - end
setContentView(R.layout.activity_office_sounds);
sofitukker=findViewById(R.id.sofitukker);
sofitukker.setOnClickListener(this);
millieturner=findViewById(R.id.millieturner);
millieturner.setOnClickListener(this);
jacobbanks=findViewById(R.id.jacobbanks);
jacobbanks.setOnClickListener(this);
jameshersey=findViewById(R.id.jameshersey);
jameshersey.setOnClickListener(this);
}
public void onClick(View view){
switch(view.getId()){
case R.id.sofitukker:
mp = MediaPlayer.create(this, R.raw.sofitukkersound);
break;
case R.id.millieturner:
mp = MediaPlayer.create(this, R.raw.millieturnersound);
break;
case R.id.jacobbanks:
mp = MediaPlayer.create(this, R.raw.jacobbankssound);
break;
case R.id.jameshersey:
mp = MediaPlayer.create(this, R.raw.jamesherseysound);
break;
default:
return;
}
mp.start();
while (mp.isPlaying()) {
}
mp.release();
}
}
Я хочу остановить предыдущий звук при переключении кнопки «Назад» и другого звука.
Редактировать: Когда я добавил оператор switch-case к while (mp.isPlaying()) { //here }
Приложение не ожидает завершения звука.Сочетает звуки.Когда второй звук нажимается после нажатия первого звука, второй звук воспроизводится до нажатия первого звука.Так что два звука какое-то время играют вместе.