App Version:1.0
Min SDK:21
Compile sdk:34
Target Sdk:34
- Showing camera preview.
- Start and stop recording.
- Handling flash light.
- Switching camera between Front and Rear.
- Pausing recording session.
- Resuming recording session.
- Displaying recording session Timer.
- Save recorded files based on OS version.
- Loading and showing recorded files into the UI.
- Playing recorded videos with inbuilt ExoPlayer.
- Displays list of recorded videos from the app which stores onto the device storage.
- Loads the videos based on OS version.
- Allows user to navigate to record a new a video.
- If no recorded videos available then shows empty view.
- Allows user to navigate to video player screen when recorded video list item is selected.
- Displays camera preview.
- Allows user to start and stop recording session.
- Allows user to pause and resume on-going recording session.
- Displays timer when recording is on-going.
- Blinks the timer when recording is in paused state.
- Allows user to switch the camera preview.
- Handles and create appropriate output options based on version, for OS P and below devices uses
FileOutputOptions
and for OS Q above devices usesMediaStoreOutputOptions
.
- Integrated Exoplayer.
- Plays the one of selected recorded file from video list screen.
- Navigation component: uses navgraph and navhost fragment for in app destination navigation.
- Hilt : uses to provide dependency injection.
- Glide : uses to load video thumbnails.
- Lifecycle component : uses ViewModel and Livedata.
- Coroutine : uses to load the data asynchronously.
- CameraX: use to achieve camera releated functionalities.
- Exoplayer : uses to play in app video playing experience.
- Databinding : to bind xml and data.