is it possible to display video information from an rtsp stream in an android app UI
- by Joseph Cheung
I have managed to get a working video player that can stream rtsp links, however im not sure how to display the videos current time position in the UI, i have used the getDuration and getCurrentPosition calls, stored this information in a string and tried to display it in the UI but it doesnt seem to work
in main.xml:
    TextView android:id="@+id/player"
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content"
           android:layout_margin="1px"
           android:text="@string/cpos"
          /
in strings.xml: 
string name="cpos""" /string
in Player.java
private void playVideo(String url) {
  try {
   media.setEnabled(false);
if (player == null) {
    player = new MediaPlayer();
    player.setScreenOnWhilePlaying(true);
   } else {
    player.stop();
    player.reset();
   }
player.setDataSource(url);
   player.getCurrentPosition();
   player.setDisplay(holder);
   player.setAudioStreamType(AudioManager.STREAM_MUSIC);
   player.setOnPreparedListener(this);
   player.prepareAsync();
   player.setOnBufferingUpdateListener(this);
   player.setOnCompletionListener(this);
} catch (Throwable t) {
   Log.e(TAG, "Exception in media prep", t);
   goBlooey(t);
   try {
    try {
     player.prepare();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    Log.v(TAG, "Duration: === " + player.getDuration());
   } catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
  }
 }
private Runnable onEverySecond = new Runnable() {
  public void run() {
   if (lastActionTime  0
    && SystemClock.elapsedRealtime() - lastActionTime  3000) {
    clearPanels(false);
   }
if (player != null) {
    timeline.setProgress(player.getCurrentPosition());
    //stores getCurrentPosition as a string
    cpos = String.valueOf(player.getCurrentPosition());
    System.out.print(cpos);
}
if (player != null) {
    timeline.setProgress(player.getDuration());
    //stores getDuration as a string
    cdur = String.valueOf(player.getDuration());
    System.out.print(cdur);
   }
if (!isPaused) {
    surface.postDelayed(onEverySecond, 1000);
   }
  }
 };