Android media player's onBufferingUpdate() always showing 100% buffered

Viewed 82

I have a simple video player in Android (code in here) that plays a video from a URL. I'm trying to print the buffer percentages using mediaPlayer's onBufferingUpdate(). But it only prints 100, meaning it's called only when it reaches 100% buffer. However, the seekbar doesn't highlight full buffer. So it's weird.

Why is this working like that? Is there a better way to get the buffer percentage as it progresses?

vw1.setOnPreparedListener(
                new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mediaPlayer) {
                        // Hide buffering message.
//                        mBufferingTextView.setVisibility(VideoView.INVISIBLE);

                        // Restore saved position, if available.
                        if (mCurrentPosition > 0) {
                            vw1.seekTo(mCurrentPosition);
                        } else {
                            // Skipping to 1 shows the first frame of the video.
                            vw1.seekTo(1);
                        }

                        // Start playing!
                        vw1.start();


                        mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
                            boolean buffered = false;
                            @Override
                            public void onBufferingUpdate(MediaPlayer mediaPlayer, int i) {

                                if(!buffered) {
                                    long t1 = System.currentTimeMillis();
                                    mBufferingTextView.setText((t1 - t0) + ", " + i + " ");
                                    buffered = true;
                                }
                            }
                    });
                    }
        });
0 Answers
Related