Я использую MediaPlayer для воспроизведения одной песни из сети. Источник данных - это URL-адрес HTTP.
Предположим, что мы имеем следующее состояние воспроизведения.
Продолжительность песни: 1:00
Текущий прогресс: 0:10
Текущий прогресс буферизации 0:30
Скажем, я хочу пропустить часть песни и искать вперед. Я делаю это с помощью метода MediaPlayer.seekTo(). Если я ищу буферную позицию (0:20), она выполняется правильно. Но если я ищу позицию, которая еще не буферизована (0:40), MediaPlayer ведет себя нечетно. Он сразу указывает, что он искал правильно, не дожидаясь заполнения буфера. Фактически, он продолжает играть в том же положении, где он был перед поиском. С этого момента метод MediaPlayer.getCurrentPosition() возвращает неправильную позицию. Когда игра заканчивается, и OnCompletionListener.onCompletion callback называется текущей позицией медиаплеера намного выше, чем полная продолжительность песни.
Любые идеи для решения этой проблемы?