1. Introducing Channels - a new way to chat with other Android users!
    Dismiss Notice

google's video camera code explanation of a function-updateRecordingTimer..please explain..


Last Updated:

  1. AndroiDev

    AndroiDev Member This Topic's Starter

    Joined:
    Jun 9, 2010
    Messages:
    8
    Likes Received:
    0
    private void updateRecordingTime() {
    if (!mMediaRecorderRecording) {
    return;
    }
    long now = SystemClock.uptimeMillis();
    long delta = now - mRecordingStartTime;
    // Starting a minute before reaching the max duration
    // limit, we'll countdown the remaining time instead.
    boolean countdownRemainingTime = (mMaxVideoDurationInMs != 0
    && delta >= mMaxVideoDurationInMs - 60000);
    long next_update_delay = 1000 - (delta % 1000);
    long seconds;
    if (countdownRemainingTime) {
    delta = Math.max(0, mMaxVideoDurationInMs - delta);
    seconds = (delta + 999) / 1000;
    } else {
    seconds = delta / 1000; // round to nearest
    }
    long minutes = seconds / 60;
    long hours = minutes / 60;
    long remainderMinutes = minutes - (hours * 60);
    long remainderSeconds = seconds - (minutes * 60);
    String secondsString = Long.toString(remainderSeconds);
    if (secondsString.length() < 2) {
    secondsString = "0" + secondsString;
    }
    String minutesString = Long.toString(remainderMinutes);
    if (minutesString.length() < 2) {
    minutesString = "0" + minutesString;
    }
    String text = minutesString + ":" + secondsString;
    if (hours > 0) {
    String hoursString = Long.toString(hours);
    if (hoursString.length() < 2) {
    hoursString = "0" + hoursString;
    }
    text = hoursString + ":" + text;
    }
    mRecordingTimeView.setText(text);
    if (mRecordingTimeCountsDown != countdownRemainingTime) {
    // Avoid setting the color on every update, do it only
    // when it needs changing.
    mRecordingTimeCountsDown = countdownRemainingTime;
    int color = getResources().getColor(countdownRemainingTime
    ? R.color.recording_time_remaining_text
    : R.color.recording_time_elapsed_text);
    mRecordingTimeView.setTextColor(color);
    }
    // Work around a limitation of the T-Mobile G1: The T-Mobile
    // hardware blitter can't pixel-accurately scale and clip at the
    // same time, and the SurfaceFlinger doesn't attempt to work around
    // this limitation. In order to avoid visual corruption we must
    // manually refresh the entire surface view when changing any
    // overlapping view's contents.
    mVideoPreview.invalidate();
    mHandler.sendEmptyMessageDelayed(
    UPDATE_RECORD_TI
     

    Advertisement

Share This Page

Loading...