Android 在mediaplayer中重复音频
对于mediaplayer中的重复音频,请编写以下代码,但不能正确工作:Android 在mediaplayer中重复音频,android,audio,media-player,repeat,Android,Audio,Media Player,Repeat,对于mediaplayer中的重复音频,请编写以下代码,但不能正确工作: seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { if (b) { G.mediaPlayer.seekTo(i
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (b) {
G.mediaPlayer.seekTo(i);
}
if (i >= G.mediaPlayer.getDuration()) {
if (isRepeat) {
G.mediaPlayer.seekTo(0);
G.mediaPlayer.start();
}else {
G.mediaPlayer.seekTo(0);
G.mediaPlayer.pause();
}
}
}
对于播放音频,请执行以下操作:
public void playSongWithIndex(final int songIndex) {
progressBar.setVisibility(View.VISIBLE);
if (music_exist.exists()) {
playMusicOfflineMode();
} else {
try {
G.mediaPlayer.reset();
G.mediaPlayer.setDataSource(songList.get(songIndex).getFile_128());
G.mediaPlayer.prepareAsync();
G.mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
G.mediaPlayer.start();
seekBar.setMax(G.mediaPlayer.getDuration());
progressBar.setVisibility(View.INVISIBLE);
timer = new Timer();
timer.schedule(new MainTimer(), 0, 1000);
}
});
} catch (IllegalArgumentException | IllegalStateException | IOException e) {
e.printStackTrace();
}
}
}
但重复音频有时工作完成,有时当seekbar结束时停止工作。
请帮助我如何重复音频?我不确定,但我认为您可以使用loop…例如
mmediplayer.setLooping(true) 您可以将媒体播放器循环设置为true,请使用以下代码:
G.mediaPlayer.setLooping(true);
如果您想知道播放机何时完成,您应该像这样使用OnCompletionListener:
G.mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
}
});
确定以帮助其他开发人员编写我的正确答案:
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
if (isRepeat) {
G.mediaPlayer.start();
} else {
G.mediaPlayer.seekTo(0);
seekBar.setProgress(0);
current_duration_text.setText("" + utils.milliSecondsToTimer(0));
play_music_img.setImageResource(R.drawable.ic_play_arrow_black_24dp);
}
}
我希望有用,但我喜欢我的代码有时能工作,有时在媒体播放器停止时结束。如果使用循环不起作用,请尝试重新启动,但当您得到“onCompletion”时。
public void onCompletion(MediaPlayer MediaPlayer){if(isRepeat){G.MediaPlayer.start();}else{G.mediaPlayer.seekTo(0);当前_duration_text.setText(“+utils.毫秒计时器(0));播放音乐_img.setImageResource(R.drawable.ic_play_arrow_black_24dp);}
我尝试此操作,但当重复为false时,搜索栏不会重置。mediaplayer如何完成搜索栏重置?只需使用搜索栏。设置值(0);
或重置值。请回答此问题