title: OnBufferingUpdate not being called in MediaPlayer
body: <p>My OnBufferingUpdate never gets called when I try to use it with my MediaPlayer. I'm using videos saved on my SDcard as the media source. I think this is the source of the problem and I'm wondering if OnBufferingUpdate only works for internet streams. The code I am using is below.</p>
  
  <pre><code> public class FullImageActivity extends Activity implements SurfaceHolder.Callback,       OnPreparedListener, OnInfoListener,                                                                   OnErrorListener, OnBufferingUpdateListener{
  
  private static final String TAG = "MediaPlayer shit";
  MediaPlayer player;
  SurfaceView surfaceview;
  SurfaceHolder surfaceHolder;
  int width;
  int height;
  DisplayImageOptions options;
  ViewPager viewpager;
  String path;
  long id;
  String[] projection = { GridviewData.ROWID, GridviewData.BITMAPPATH, GridviewData.VIDEOFILEPATH};
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.full_image);
  
      Intent i = getIntent();
  
      id = i.getExtras().getLong("id");
      path = i.getExtras().getString("videopath");
  
      surfaceview = (SurfaceView)findViewById(R.id.surfaceview);
      surfaceHolder = surfaceview.getHolder();
      surfaceHolder.addCallback(this);
  
  
  
  }
  
  public void playVideo(){
      player = new MediaPlayer();
      try {
          player.reset();
          player.setOnErrorListener(this);
          File file = new File(path);
          FileInputStream inputStream = new FileInputStream(file);
          player.setDataSource(inputStream.getFD());
  
          inputStream.close();            
          player.setOnBufferingUpdateListener(this);
          player.setOnInfoListener(this);
          player.setOnPreparedListener(this);
          player.setDisplay(surfaceHolder);
          player.prepareAsync();
  
  
      } catch (IllegalArgumentException e) {
          e.printStackTrace();
      } catch (SecurityException e) {
          e.printStackTrace();
      } catch (IllegalStateException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
  }
  @Override
  protected void onPause() {
      surfaceview.setVisibility(View.GONE);
      if ( player != null ) 
      {
          if ( player.isPlaying() )
              player.stop();
          player.release();
          player = null;
      }
      super.onPause();
  }
  @Override
  protected void onResume() {
      surfaceview.setVisibility(View.VISIBLE);
      Log.i(TAG, "In onResume");
      super.onResume();
  }
  @Override
  protected void onStop() {
      super.onStop();
  }
  @Override
  public void surfaceChanged(SurfaceHolder holder, int arg1, int arg2, int arg3) {
      if ( player != null ) 
      {
          try {
              Log.i(TAG, "In surface change");
              player.setDisplay(surfaceHolder);
          } catch (Exception e) {
              e.printStackTrace();
          }
      }   
  }
  @Override
  public void surfaceCreated(SurfaceHolder holder) {
      Log.i(TAG, "in surface created");
      playVideo();
  }
  
  @Override
  public void surfaceDestroyed(SurfaceHolder arg0) {
          Log.i(TAG, "Surface destroyed");
          if ( player != null ) 
          {
              if ( player.isPlaying() )
                  player.stop();
              player.release();
              player = null;
          }   }
  @Override
  public void onPrepared(MediaPlayer p) {
  
  
      player.start();
  
  }
  
  @Override
  public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
      Log.i(TAG, "THERE WAS AN ERROR");
      return false;
  }
  
  
  @Override
  public void onBufferingUpdate(MediaPlayer mp, int percent) {
  
      if (percent == 50){
      Log.i(TAG, "Within bufferingupdate");
      }
  
  }
  </code></pre>