There are a couple discrepancies I noticed between the android
documentation for MediaPlayer, and what I actually see happening on
android on GoogleTV.
For instance, the MEDIA_INFO_BUFFERING_START -
http://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_INFO_BUFFERING_START
doesn't ever seem to be called, even when it definitely is buffering
and playback is paused - this is on GoogleTV's that are already on
honeycomb, so this should be fired in the OnInfoListener.
The second discrepancy, that I've been seeing is on the
OnBufferingUpdateListener -
http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html.
According to the docs, it should give you a percent in terms of how
much the video has finished downloading (i.e. - when it hits 100%, it
should have the whole video downloaded). However, what I end up
seeing, is that OnBufferingUpdateListener returns 100 when it has
enough of the video buffered to start playback, and not when the
entire video has finished downloading.
I'm trying to figure out when the MediaPlayer is paused due to
buffering (exactly what MEDIA_INFO_BUFFERING_START should provide).
Right now, I'm going with an ad-hoc solution that basically says the
video is buffering if OnBufferingUpdateListener return a percent that
is not 100, which is working because of the quirks that I seem to be
seeing in the GoogleTV MediaPlayer. However, this isn't correct
according to the documentation, and I am wondering what the correct
behavior really should be (are the docs wrong? or is there a bug in
the android MediaPlayer implementation relating to buffering). Does
anybody have any further insight into this?
Thanks.