Я использую MediaPlayer на Honeycomb и не могу получить продолжительность любого видео HLS (потоковая передача по HTTP) в функции onPrepared ().
Если после prepare()
вызывается getDuration()
, возвращается 0:
public void onPrepared(MediaPlayer mp) {
// getduration returns 0
mediaPlayer.start();
Log.d(TAG, "duration: " + mediaPlayer.getDuration());
}
Однако воспроизведение видео начинается.
Если вызывается getDuration()
вonVideoSizeChanged()
возвращает правильное значение,
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
// returns the correct value
Log.d(TAG, "duration: " + mediaPlayer.getDuration());
}
Почему getDuration()
работает в onVideoSizeChanged()
, а не в onPrepared()
?
Редактировать : приСначала я подумал, что getDuration () вообще не работает, но нашел, что он возвращает правильное значение в onVideoSizeChanged ().Измененный вопрос для отражения этого.