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