Skip to content

naseemakhtar994/CustomCamera

 
 

Repository files navigation

CustomCamera API Android Arsenal Say Thanks! Twitter URL

A Custom camera Demo App. In this Demo we can take pictures and record videos too.

Why would anyone want to use this?

If someone wants to upload pictures or videoes from its own app to main the quality of app content.And if you want to add a limit to user , that user should only able to record video up to certain length.Like instagram then this demo is for you

Basic Usage

This is where we start recoding video , when button long pressed

 private View.OnLongClickListener recordHoldListener = new View.OnLongClickListener() {

   @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public boolean onLongClick(View pView) {
        // Do something when your hold starts here.

        Log.d("things called","onLongPressed");
        if (!startRecordingcalled){
            startRecordingVideo();
            linearTimer.startTimer();
        }


        isSpeakButtonLongPressed = true;
        return true;
    }
};

This is where we stop recoding video ,we release button

private View.OnTouchListener recordTouchListener = new View.OnTouchListener() {

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public boolean onTouch(View pView, MotionEvent pEvent) {
        pView.onTouchEvent(pEvent);
        // We're only interested in when the button is released.
        if (pEvent.getAction() == MotionEvent.ACTION_UP) {
            // We're only interested in anything if our speak button is currently pressed.
            if (isSpeakButtonLongPressed) {

                Log.d("things called","onTouch");
                stopRecordingVideo();
                linearTimer.pauseTimer();
                linearTimer.resetTimer();
                startRecordingcalled=false;
                // Do something when the button is released.
                isSpeakButtonLongPressed = false;
            }
        }
        return false;
    }
};

We can change duration of recording by ...

    long duration = 30 * 1000

We can a adjusting the fps range and fixing the dark preview by adding this ..

 mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getRange());

getRange is the method where we do our custom setting to adjust range as per our requirement.

 private Range<Integer> getRange() {
    CameraManager mCameraManager = (CameraManager)getActivity().getSystemService(Context.CAMERA_SERVICE);
    CameraCharacteristics chars = null;
    try {
        chars = mCameraManager.getCameraCharacteristics(mCameraId);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
    Range<Integer>[] ranges = chars.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);

    Range<Integer> result = null;

    for (Range<Integer> range : ranges) {
        int upper = range.getUpper();

        // 10 - min range upper for my needs
        if (upper >= 10) {
            if (result == null || upper < result.getUpper().intValue()) {
                result = range;
            }
        }
    }
    return result;
}

We can change the color of progress of recoding circle from xml by these 2

     timer:initialColor="@color/white"
     timer:progressColor="@color/red"
        

    <io.github.krtkush.lineartimer.LinearTimerView
        android:id="@+id/linearTimer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        timer:radius="18dp"

        timer:strokeWidth="2dp"
        timer:startingPoint="270"
        timer:initialColor="@color/white"
        timer:progressColor="@color/red"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

Screenshots

camera_prev1

camera_prev2

Connect With Me

Aryan Dhankar (Elite Novice) I love making new friends, please feel free to connect with me.

Connect me on Google+ Connect me on Facebook Connect me on LinkedIn

Question / Contact Me / Hire Me

Please feel free to ping me at aryandhankar11@gmail.com.

About

A Custom camera Demo App. In this Demo we can take pictures and record videos too.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%