MediaPlayer.seekTo () не работает на освободившее буфер положение

Я использую MediaPlayer для проигрывания единственной песни в формате MP3 из сети. Источником данных является URL HTTP.

Давайте предположим, что у нас есть следующее состояние воспроизведения.

Продолжительность песни: 1:00

Текущий прогресс: 0:10

Текущий прогресс буферизации 0:30

Скажем, я хочу пропустить некоторую часть песни и искать вперед. Я делаю это с MediaPlayer.seekTo () метод. Если я ищу на буферизированное положение (0:20), оно выполняется правильно. Но если я ищу на положение, которое еще не было буферизовано (0:40), MediaPlayer ведет себя нечетный. Это сразу указывает, что ослепило правильно, не ожидая буфера для заполнения. На самом деле это продолжает играть в том же положении, где это прежде искало. С этого времени MediaPlayer.getCurrentPosition () метод возвращает неправильное положение. Когда проигрывание достигает своего конца, и обратный вызов OnCompletionListener.onCompletion называют, текущее положение медиаплеера намного выше, чем вся продолжительность песни.

Какие-либо идеи для решения этого?

12
задан plugmind 9 July 2010 в 12:49
поделиться

2 ответа

Вероятно, это связано с ошибкой, которая (ссылаясь на один из комментариев) в конечном итоге исправлена ​​в 2.2. http://code.google.com/p/android/issues/detail?id=4124

1
ответ дан 2 December 2019 в 22:51
поделиться

Насколько мне известно, это было исправлено в Android 2.2 на некоторых устройствах.

Однако Android 2.2 не справляется с поиском буферизованной позиции. Хотя позиция уже находится в буфере, MediaPlayer отправляет запрос на сервер.

3
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: