Надеюсь, что это может решить вашу проблему.
1) Продолжительность и ход аудиопотока
Я изучил ваш код, у вас есть серьезная ошибка вВаш код для расчета времени.Вы создаете новую дату (durationInMillis).Дата добавляет ваш населенный пункт, т.е. GMT + XX часов, поэтому вы получаете 5 часов в начале потокового вещания.Вы должны использовать следующий метод для вычисления currentProgress / duration.
protected void setProgressText() {
final int HOUR = 60*60*1000;
final int MINUTE = 60*1000;
final int SECOND = 1000;
int durationInMillis = mediaPlayer.getDuration();
int curVolume = mediaPlayer.getCurrentPosition();
int durationHour = durationInMillis/HOUR;
int durationMint = (durationInMillis%HOUR)/MINUTE;
int durationSec = (durationInMillis%MINUTE)/SECOND;
int currentHour = curVolume/HOUR;
int currentMint = (curVolume%HOUR)/MINUTE;
int currentSec = (curVolume%MINUTE)/SECOND;
if(durationHour>0){
System.out.println(" 1 = "+String.format("%02d:%02d:%02d/%02d:%02d:%02d",
currentHour,currentMint,currentSec, durationHour,durationMint,durationSec));
}else{
System.out.println(" 1 = "+String.format("%02d:%02d/%02d:%02d",
currentMint,currentSec, durationMint,durationSec));
}
}
2) Очистка для потока.
MediaPlayer позволяет очистить аудиопоток.Я реализовал это в одном из моих проектов, но это занимает некоторое время.Для возобновления потоковой передачи звука из другого места требуется некоторое время.