diff --git a/src/android/src/org/musikcube/PlayerControl.java b/src/android/src/org/musikcube/PlayerControl.java index 8df9db0a4..a313799bc 100644 --- a/src/android/src/org/musikcube/PlayerControl.java +++ b/src/android/src/org/musikcube/PlayerControl.java @@ -197,10 +197,13 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On positionView.setText(positionText); SeekBar seekBar = (SeekBar)findViewById(R.id.TrackProgress); - if(this.duration==0){ - seekBar.setProgress(0); - }else{ - seekBar.setProgress(msPosition/this.duration); + synchronized (this.lock) { + if(this.duration==0){ + seekBar.setProgress(0); + }else{ + seekBar.setProgress(msPosition/this.duration); + } + seekBar.setSecondaryProgress(10*Player.GetInstance().GetTrackBuffer()); } // Next callback in 0.5 seconds diff --git a/src/android/src/org/musikcube/core/Player.java b/src/android/src/org/musikcube/core/Player.java index 839fe5721..0fa0d752d 100644 --- a/src/android/src/org/musikcube/core/Player.java +++ b/src/android/src/org/musikcube/core/Player.java @@ -172,5 +172,15 @@ public class Player implements TrackPlayer.OnTrackStatusListener{ } return 0; } + + public int GetTrackBuffer(){ + synchronized(this.lock){ + TrackPlayer player = this.currentPlayer; + if(player!=null){ + return player.GetBuffer(); + } + } + return 0; + } } diff --git a/src/android/src/org/musikcube/core/TrackPlayer.java b/src/android/src/org/musikcube/core/TrackPlayer.java index f0e2ce2e4..8ddecebaa 100644 --- a/src/android/src/org/musikcube/core/TrackPlayer.java +++ b/src/android/src/org/musikcube/core/TrackPlayer.java @@ -2,12 +2,13 @@ package org.musikcube.core; import android.media.MediaPlayer; -public class TrackPlayer implements Runnable, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener { +public class TrackPlayer implements Runnable, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener,MediaPlayer.OnBufferingUpdateListener { private Thread thread; private String url; private java.lang.Object lock = new java.lang.Object(); private MediaPlayer mediaPlayer; + private int buffer = 0; private int status = 1; @@ -24,6 +25,7 @@ public class TrackPlayer implements Runnable, MediaPlayer.OnCompletionListener, this.mediaPlayer.setOnCompletionListener(this); this.mediaPlayer.setOnErrorListener(this); + this.mediaPlayer.setOnBufferingUpdateListener(this); this.mediaPlayer.setDataSource(this.url); this.mediaPlayer.prepare(); @@ -151,5 +153,17 @@ public class TrackPlayer implements Runnable, MediaPlayer.OnCompletionListener, } return 0; } + + public void onBufferingUpdate(MediaPlayer mp, int percent) { + synchronized(this.lock){ + this.buffer = percent; + } + } + + public int GetBuffer(){ + synchronized(this.lock){ + return this.buffer; + } + } }