私は一時停止しているオーディオを再生する際に問題に直面しています。私は単一の再生ボタンで3つの機能を実行したいと思います。最初に再生ボタンを押すと、オーディオが再生されるはずです。2回目の再生ボタンを押すと、もう一度再生ボタンが押されたということは、オーディオを一時停止状態から再開する必要があることを意味します。私はオーディオを一時停止できる多くの方法を試しましたが、一時停止状態からのオーディオを再開しない最初から再生しています。一時停止しているオーディオを再開するにはどうすればいいですか?
(!)(mediaPlayer.isPlaying & & mediaPlayer.getCurrentPosition()> 0) but it is not working.
私の作業コードが
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, "Playing sound", Toast.LENGTH_SHORT).show();
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
if(!mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 0){
long currentPosition = mediaPlayer.getCurrentPosition();
mediaPlayer.seekTo((int) currentPosition);
mediaPlayer.start();
}
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(path);
mediaPlayer.setOnPreparedListener((MediaPlayer.OnPreparedListener) activity);
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
finalTime = mediaPlayer.getDuration();
startTime = mediaPlayer.getCurrentPosition();
if (oneTimeOnly == 0) {
seekBar.setMax((int) finalTime);
oneTimeOnly = 1;
}
songEndTime.setText(String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours((long) finalTime),
TimeUnit.MILLISECONDS.toMinutes((long) finalTime) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours((long) finalTime)), // The change is in this line
TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) finalTime))));
songStartTime.setText(String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours((long) startTime),
TimeUnit.MILLISECONDS.toMinutes((long) startTime) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours((long) startTime)),
TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) startTime))));
seekBar.setProgress((int) startTime);
myHandler.postDelayed(UpdateSongTime, 100);
stop.setVisibility(View.VISIBLE);
play.setVisibility(View.GONE);
}
});
この質問を参照してください: - https://stackoverflow.com/questions/3855151/how-to-resume-the-mediaplayer – headshoT