这可能是由于MediaPlayer的自动重置功能引起的。要解决这个问题,您可以通过关闭自动重置功能来解决它。
以下是用Java代码来解决问题的示例:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(yourDataSource);
mediaPlayer.prepare();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
mp.start();
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// 当歌曲播放完毕后,不要重置MediaPlayer
// 如果您在这里重置它,它会停止播放
// 不需要做任何操作
}
});
// 在这里禁用自动重置功能
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) {
// 禁用自动重置功能来避免在播放过程中意外停止播放。
mp.reset();
mp.setOnPreparedListener(null);
mp.setOnErrorListener(null);
mp.setDataSource(yourDataSource);
mp.prepareAsync();
return true;
}
return false;
}
});