Метод MediaPlayer getDuration()
дает мне неправильное значение для некоторых аудиофайлов. Я думаю, что общей чертой всех этих файлов является то, что ими манипулировали с помощью Audacity или какого-либо другого инструмента для редактирования аудио. Это проблема при попытке связать прогресс MediaPlayer с индикатором выполнения.
Я пошел вперед и зарегистрировал это:
while(mPlayer.isPlaying())
Log.i("progress/total",
mPlayer.getCurrentPosition() +
"/" + mPlayer.getDuration());
и нашел это:
I/progress/total(643): 14615/14620
I/progress/total(643): 14647/14620
Это всего две строки журнала из тысяч, но дело в том, что после того, как прогресс проходит то, что getDuration() считает общей продолжительностью песни, он просто продолжается. Поскольку MediaPlayer на самом деле может дать правильную общую продолжительность, есть ли способ использовать это, чтобы получить правильный максимум для моего ProgressBar?